在开发的时候,我们喜欢将一些公共的方法,属性,放在一个特定的位置,例如在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的问题的更多相关文章

  1. ios系统App Store安装包下载链接获取

    今天将自己开发的Android版本和ios版本的安装包通过生成二维码的方式展示在H5页面上,Android版的比较简单,但是ios的安装包用户必须从App Store(苹果应用市场)中下载安装,所以获 ...

  2. 使用mpvue开发小程序教程(六)

    在上一章节中,我们列举了在Vue中能用但在mpvue中不能用或需要特别注意的特性,在实际开发前了解一下还是很有必要的,可以避免浪费找错误的时间. 如果你使用过原生的小程序框架,你一定经历过或思考过怎么 ...

  3. mpvue 转小程序实践总结

    介绍 Mpvue 是一个使用 Vue.js 开发小程序的前端框架.  基础介绍 框架基于 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序 ...

  4. 【mpvue】使用Mpvue撸一个简单的小程序

    一.快速创建一个mpvue项目   全局安装 vue-cli   (如果有就不需要装了) 创建一个基于mpvue-quickstart模板的新项目,记得选择安装vuex vue init mpvue/ ...

  5. 使用mpVue开发小程序实战总结

    1.图形验证码接口返回base64格式的数据,使用image标签接收不显示问题. 解决方法: 使用wx.base64ToArrayBuffer和wx.arrayBufferToBase64转化一遍数据 ...

  6. MPVUE - 使用vue.js开发微信小程序

    MPVUE - 使用vue.js开发微信小程序 什么是mpvue? mpvue 是美团点评前端团队开源的一款使用 Vue.js 开发微信小程序的前端框架.框架提供了完整的 Vue.js 开发体验,开发 ...

  7. mpvue开发美团外卖点餐小程序

    mpvue-meituan mpvue-meituan 是一款使用mpvue开发的实战小程序项目,完全仿制美团官方外卖点餐小程序开发而成,项目的框架结构完全按照企业开发架构搭建而成.结合了原生小程序的 ...

  8. mpvue 开发小程序接口数据统一管理

    mpvue项目里做API与数据分离统一管理 小程序里请求数据接口使用wx:request,因为考虑项目比较大,最好把wx:request封装起来,统一使用管理 utils.js 配置开发环境和线上环境 ...

  9. mpvue的使用,包含axios、router的集成等完美结合小程序

    mpvue开发微信小程序框架的使用注意事项: 1.路由跳转,引用mpvue-router-patch 在main.js文件中引入控件:import MpvueRouterPatch from 'mpv ...

随机推荐

  1. Kubernetes部署DNS

    前言 阅读地址 http://thoreauz.com/2017/04/16/docker/Kubernetes%E9%83%A8%E7%BD%B2DNS%E5%92%8CDashboard/ Kub ...

  2. 文本框的pattern属性

    代码实例: test.html <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  3. 【leetcode】912. Sort an Array

    题目如下: Given an array of integers nums, sort the array in ascending order. Example 1: Input: [5,2,3,1 ...

  4. fiddler常见问题

    捕获https: tools>options https>decrypt https traffic :安装证书捕获客户端请求: tools>options connections& ...

  5. redis学习 --List

    1:添加   lpush    rpush     如果没有key的话,会报错.   lpushx    rpushx    如果没有key的话,不做任何反应. 2:得到 lpop   rpop   ...

  6. 状压DP常用操作

    1. 判断一个数字x二进制下第i位是不是等于1. 方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0) 将1左移i-1位,相当于制造了一个只有第i位 ...

  7. MySQL:MySQL日期数据类型、MySQL时间类型使用总结

    MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间      日期格式                日期范围------------  -------- ...

  8. 【转】excel音标乱码

    源地址:https://zhidao.baidu.com/question/204553900.html 百度一个音标字体文件,下载后再拷贝到C:\WINDOWS\FONTS目录下面就可以了 下载地址 ...

  9. XX-Net 使用教程(Across the Great Wall)

    注意: 由于封锁严重,软件自带IP已经被封杀殆尽.因此需要数分钟到数小时的初始化IP扫描,方能正常运行. 虽然系统内置了公共appid, 还是建议部署自己的appid,公共appid限制看视频.需要注 ...

  10. 【进阶技术】一篇文章搞掂:Spring Cloud Stream

    本文总结自官方文档http://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.0.RC3/single/spring-clou ...