解决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 相关文章推荐
jQuery动画效果animate和scrollTop结合使用实例
Apr 02 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
JS实现页面跳转与刷新的方法汇总
Aug 30 Javascript
Vue实现Layui的集成方法步骤
Apr 10 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
JS制作简易计算器的实例代码
Jul 04 Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 Javascript
jQuery冲突问题解决方法
Jan 19 jQuery
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
从wamp到xampp的升级之路
2015/04/08 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
php限制文件下载速度的代码
2015/10/20 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
python对json的相关操作实例详解
2017/01/04 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
django admin组件使用方法详解
2019/07/19 Python
Python如何将函数值赋给变量
2020/04/28 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
华为慧通笔试题
2016/04/22 面试题
中专生自我鉴定范文
2013/12/19 职场文书
股东授权委托书范文
2014/09/13 职场文书
小学生优秀评语
2014/12/29 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
教师反邪教心得体会
2016/01/15 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android