mpvue 无法获取$store的问题
在开发的时候,我们喜欢将一些公共的方法,属性,放在一个特定的位置,例如在mpvue开发小程序的时候,
我们将其放在 vue提供的store里面,或者在mainjs中通过Vue.prototype.xxx=xxxxxxxxxx在Vue的原型上扩展属性或方法。
经过发现:我们使用store的时候,习惯将Vue.$prototype.store = store,问题就出在这里,小程序中:在每一个页面的template部分,采用{{$store.state.xx}}在界面上不会有任何呈现,但是在H5中显示是正常的,
说明mpvue在编译的过程中可能没有在对应的小程序的页面上解析this.$store,但是在数据层(js上),我们如果采用 this.aa = this.$store.state.xxx是可以正确访问和赋值的(这点比较重要),aa放在页面上也没有问题,但是这样的就失去了 ‘全局’的意义;
由于 this.aa = this.$store.state.xxx是一次性赋值,对于常量这类非引用类型, 在下一次 this.$store.state.xxx发生变化的话,我们将无法触发this.aa的更新!! 需要手动再次赋值,所以很麻烦。
解决办法:1,针对于页面不多的情况下,每个页面引用store;
2,上述可能麻烦,为了促发数据层的更新。我们可以采用computed,在mainjs中声明一个mixin(不会mixin的同学们请参看https://cn.vuejs.org/v2/api/#Vue-mixin);
computed会在内部的 store更新(首先是因为上述的这句(在数据层,我们如果采用 this.aa = this.$store.state.xxx是可以正确访问和赋值的))
代码如下:
import store from './store'
Vue.prototype.$store = store; Vue.mixin({
computed: {
network: function() {
return this.$store.state.network;
},
}
})
那么我们就可以在任何一个页面间接的使用store了,在A页面改变store中的值,那么B页面上也能及时得到改变。
mpvue 无法获取$store的问题的更多相关文章
- ios系统App Store安装包下载链接获取
今天将自己开发的Android版本和ios版本的安装包通过生成二维码的方式展示在H5页面上,Android版的比较简单,但是ios的安装包用户必须从App Store(苹果应用市场)中下载安装,所以获 ...
- 使用mpvue开发小程序教程(六)
在上一章节中,我们列举了在Vue中能用但在mpvue中不能用或需要特别注意的特性,在实际开发前了解一下还是很有必要的,可以避免浪费找错误的时间. 如果你使用过原生的小程序框架,你一定经历过或思考过怎么 ...
- mpvue 转小程序实践总结
介绍 Mpvue 是一个使用 Vue.js 开发小程序的前端框架. 基础介绍 框架基于 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序 ...
- 【mpvue】使用Mpvue撸一个简单的小程序
一.快速创建一个mpvue项目 全局安装 vue-cli (如果有就不需要装了) 创建一个基于mpvue-quickstart模板的新项目,记得选择安装vuex vue init mpvue/ ...
- 使用mpVue开发小程序实战总结
1.图形验证码接口返回base64格式的数据,使用image标签接收不显示问题. 解决方法: 使用wx.base64ToArrayBuffer和wx.arrayBufferToBase64转化一遍数据 ...
- MPVUE - 使用vue.js开发微信小程序
MPVUE - 使用vue.js开发微信小程序 什么是mpvue? mpvue 是美团点评前端团队开源的一款使用 Vue.js 开发微信小程序的前端框架.框架提供了完整的 Vue.js 开发体验,开发 ...
- mpvue开发美团外卖点餐小程序
mpvue-meituan mpvue-meituan 是一款使用mpvue开发的实战小程序项目,完全仿制美团官方外卖点餐小程序开发而成,项目的框架结构完全按照企业开发架构搭建而成.结合了原生小程序的 ...
- mpvue 开发小程序接口数据统一管理
mpvue项目里做API与数据分离统一管理 小程序里请求数据接口使用wx:request,因为考虑项目比较大,最好把wx:request封装起来,统一使用管理 utils.js 配置开发环境和线上环境 ...
- mpvue的使用,包含axios、router的集成等完美结合小程序
mpvue开发微信小程序框架的使用注意事项: 1.路由跳转,引用mpvue-router-patch 在main.js文件中引入控件:import MpvueRouterPatch from 'mpv ...
随机推荐
- spring+mybatis+log4j 输出SQL
1.在mybatis-config.xml配置中添加setting配置参数,会打印SQL执行结果 <?xml version="1.0" encoding="UTF ...
- flask之表单
一:表单 表单用于注册,修改用户数据等场景. flask-wtf提供了一个包,可以创建表单:pip install flask-wtf 为了防止跨域请求,flask_wtf自己生成一个秘钥,用秘钥生成 ...
- SystemUI分析
SystemUI是安卓的一个系统APP,负责的内容有系统通知栏,状态栏,最近应用程序,锁屏,壁纸,屏保,系统对话框,截屏,录屏等功能. Apk的路径位于/system/priv-app,源码code位 ...
- ht-2 arrayList特性
一.arrayList对象创建 当调用无参构造方法来构造一个ArrayList对象时,它会在内部分配一个初始大小为10的一个Object类型数组, 当添加的数据容量超过数组大小的时候,会产生一个新的数 ...
- spring boot 开静态资源访问,配置视图解析器
配置视图解析器spring.mvc.view.prefix=/pages/spring.mvc.view.suffiix= spring boot 开静态资源访问application.proerti ...
- CKEDITOR无缝粘贴word
由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直 ...
- php选择文件夹上传
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- UPDATE 在不同数据库中的使用方式
MYSQL 中update 表一 set Gmoney = 表二.列名 from 表一,表二 where 表一.EMPID = 表二.EMPID举例:update table1 set table1. ...
- scrapy中的cookies参数详解
COOKIES_ENABLED 默认: True 是否启用cookiesmiddleware.如果关闭,cookies将不会发送给web server. COOKIES_DEBUG 默认: False ...
- vue键盘修饰符
keyup事件 <input type='input' @keyup="keyEvent"> keyup.enter事件 <input type='input' ...