解决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 相关文章推荐
node.js使用nodemailer发送邮件实例
Mar 10 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
简单几步实现返回顶部效果
Dec 05 Javascript
React 组件中的 bind(this)示例代码
Sep 16 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
使用webpack构建应用的方法步骤
Mar 04 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 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
ajax php 实现写入数据库
2009/09/02 PHP
php 获取全局变量的代码
2011/04/21 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
小议Javascript中的this指针
2010/03/18 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python使用cookielib库示例分享
2014/03/03 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
python中map()函数的使用方法示例
2017/09/29 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
五型班组建设方案
2014/02/10 职场文书
网页美工求职信范文
2014/04/17 职场文书
单位授权委托书范文
2014/08/02 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
大学军训决心书
2015/02/05 职场文书
起诉意见书范文
2015/05/19 职场文书
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电