解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题


Posted in Javascript onAugust 03, 2018

前言

最近博主正在用微信小程序开发一款网上商城系统。恰好赶上了美团开源的小程序开发框架mpvue。该框架继承了vue.js的特性,用起来还是蛮爽的。然后在开发中,数据仓库这块懵逼了, 引入的vuex的辅助函数mapState、mapGetters、mapMutations、mapActions等怎么就不能用呢。苦恼之际打开D盘,一番愉悦之后,终于想通啦…

问题分析

•vuex辅助函数

 首先简单说一下vuex的辅助函数mapState、mapGetters、mapMutations、mapActions,我们在子组件经常用到很多状态量,为了避免过分的使用this.$store.state.xxx、this.$store.dispatch导致的冗余问题,我们用辅助函数来使代码变得简洁易读。注意了,它就相当于语法糖似的,实际上还会映射为this.$store.吧啦吧啦

•vue-cli + vuex项目

 在一般的vue-cli + vuex项目中,主函数 main.js 中会将 store 对象提供给 “store” 选项,这样可以把 store 对象的实例注入所有的子组件中,从而在子组件中可以用this.$store.state.xxx、this.$store.dispatch 等来访问或操纵数据仓库中的数据

new Vue({
el: '#app',
store,
router,
template: '<App/>',
components: { App }
})

•mpvue + vuex项目

 注意了,在mpvue + vuex项目中,很遗憾不能通过上面那种方式来将store对象实例注入到每个子组件中(至少我尝试N种配置不行),也就是说,在子组件中不能使用this.$store.吧啦吧啦,从而导致辅助函数不能正确使用。这个时候我们就需要换个思路去实现,要在每个子组件中能够访问this.$store才行。

解决办法

这里呢,博主使用的方法很简单,既然我们需要在子组件中用this.$store 访问store实例,那我们直接在vue的原型上添加$store属性指向store对象不就行啦,抱着试一试的心态写了下面这行代码。

Vue.prototype.$store = store

这样一来我们在子组件中便可以用this.$store访问对象。确实也解决了辅助函数不能使用的问题。

总结

以上所述是小编给大家介绍的解决mpvue + vuex 开发微信小程序 vuex辅助函数mapState、mapGetters不可用问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 拼图游戏 面向对象,注释完整。
Jun 18 Javascript
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
js常用DOM方法详解
Feb 04 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
java和js实现的洗牌小程序
Sep 30 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
May 14 Javascript
mpvue跳转页面及注意事项
Aug 03 #Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 #Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 #Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 #Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 #Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 #Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 #Javascript
You might like
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
python中global与nonlocal比较
2014/11/21 Python
python简单文本处理的方法
2015/07/10 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
Django后台admin的使用详解
2019/07/08 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
python随机模块random使用方法详解
2020/02/14 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
机电工程学生自荐信范文
2013/12/07 职场文书
2014年母亲节寄语
2014/05/07 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android