解决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 优化次数过多的循环 考虑到性能问题
Mar 05 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
node.js 中间件express-session使用详解
May 20 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
js中实例与对象的区别讲解
Jan 21 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
小程序实现录音上传功能
Nov 22 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
php 数组元素快速去重
2017/05/05 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
Python 中 list 的各项操作技巧
2017/04/13 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python自定义时钟类、定时任务类
2021/02/22 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python中的__init__作用是什么
2020/06/09 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
大学生水文观测实习自我鉴定
2013/09/29 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
优秀公益广告词大全
2014/03/19 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis