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 ...
随机推荐
- python开发之virtualenv与virtualenvwrapper
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...
- Python---基础---常用的内置模块
一. print(math.pow(4,3)) # 4的三次方 #幂运算 函数返回浮点型,幂运算返回整形 print(4**3) #fabs() 对一个数值获取他的绝对值 返回的也 ...
- man uname
UNAME(1) User Commands/用户命令 UNAME(1) NAME/名称 uname - print system information/打 ...
- 对eventloop的研究
javasctipt是一门单线程的非阻塞的脚本语言,单线程意味着,JavaScript 单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务. JavaScript ...
- vue框架搭建--axios使用
前后端数据交互作为项目最基础需求(静态的除外),同时也是项目中最重要的需求. 本文重点介绍axios如何配合vue搭建项目框架,而axios的详细使用介绍请移步使用说明 1.安装 cnpm insta ...
- ueditor编辑器中从word中复制带图片的信息的操作演示
我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...
- 20180802-Java 方法
Java 方法 下面的方法包含2个参数num1和num2,它返回这两个参数的最大值. /** 返回两个整型变量数据的较大值**/ public static int max(int num1,int ...
- rownum的用法oracle
SELECT * FROM T WHERE ROWNUM=1 可以查询出来数据, 而SELECT * FROM T WHERE ROWNUM=2不可以查询出来数据. in the case of wh ...
- 前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/vjLQMM 可交互视频教程 此视频是可以交 ...
- laravel5.6操作数据curd写法(查询构建器)
laravel5.6 数据库操作-查询构建器 <?php //laravel5.6 语法 demo示例 namespace App\Http\Controllers;//命名该控制App空间下名 ...