解决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 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
js跑步算法的实现代码
Dec 04 Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
Oct 23 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
PHP获取当前页面完整URL的方法
Dec 02 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
JavaScript中的一些实用小技巧总结
Apr 07 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
js操作二进制数据方法
2018/03/03 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
Python中is与==判断的区别
2017/03/28 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
numpy数组广播的机制
2019/07/12 Python
Python如何读取、写入JSON数据
2020/07/28 Python
python logging模块的使用详解
2020/10/23 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
高中生操行评语大全
2014/04/25 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
团委工作总结2015
2015/04/02 职场文书
党员承诺书格式范文
2015/04/28 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL