详解vuex中mapState,mapGetters,mapMutations,mapActions的作用


Posted in Javascript onApril 13, 2018

在开始接触vuex框架的时候对那些state,action,mutation,getter等理解的还挺顺利的,然后突然出来一种加了一个前缀的mapState等,这样的就有点蒙圈了。。。特别是官方的文档并没有给除详细的说明跟例子。。。然后就自己慢慢理解了一下。其实也就是一个重命名而已。。。以下就是例子,希望能帮助理解:

在store中代码 

import Vuex from 'vuex' 
import Vue from 'vue' 
Vue.use(Vuex); 
const store = new Vuex.Store({ 
 state: { 
  count: 10, 
  numb: 10086 
 }, 
 getters: { 
  add: (state, getter) => { 
   state.count = getter.add; 
   return state.count; 
  }, 
 }, 
 mutations: { 
  increment(state,){ 
    state.count += 2; 
  }, 
 }, 
 actions: { 
  actionA({ dispatch, commit }) { 
   return commit('add'); 
  }, 
 } 
});

export default store; 

在调用的模块里面的代码如下:

<template> 
 <div class="hello"> 
  <button @click="increment">加{{count}}</button> 
 </div> 
</template> 
<script> 
 import {mapState,mapActions} from 'vuex' 
 export default { 
  name: 'hello', 
  data () { 
   return { 
    msg: 'Welcome to Your Vue.js App' 
   } 
  }, 
  methods:{ 
   increment(){ 
    this.$store.dispatch('incrementsync').then(() => { 
     console.log('then'); 
    }); 
   } 
  }, 
  computed: mapState({ // mapState相当于映射 
    count: 'numb', //这个时候count应该等于多少?!! 是等于store文件里面的count呢还是等于numb?答案是等于numb!这边的意思是mapState把'numb'的值映射给了count,所以count等于10086 
  }) 
 } 
</script>

这个时候按钮应该显示加10还是显示加10086?答案是加10086,所以map其实就是一个在store文件中的映射而已,就是不用让你要调用一个值需要敲这么多代码:this.$state.count;而只需要用count。。。

界面效果:

详解vuex中mapState,mapGetters,mapMutations,mapActions的作用

好了,其他的mapAction,mapMutations的原理是一样样的。

总结

以上所述是小编给大家介绍的详解vuex中mapState,mapGetters,mapMutations,mapActions的作用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript DOM 学习第三章 内容表格
Feb 19 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
使用js+jquery实现无限极联动
May 23 Javascript
Jquery多选框互相内容交换的实例代码
Jul 04 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
Nov 25 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
微信小程序异步处理详解
Nov 10 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
OpenLayers3实现鼠标移动显示坐标
Sep 25 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 #Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 #Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 #Javascript
Vue2.0 实现单选互斥的方法
Apr 13 #Javascript
Vue render深入开发讲解
Apr 13 #Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 #Javascript
vue组件的写法汇总
Apr 12 #Javascript
You might like
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
专升本自我鉴定
2013/10/10 职场文书
酒店总经理工作职责
2013/12/13 职场文书
企业总经理岗位职责
2014/02/13 职场文书
四年级学生评语大全
2014/04/21 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
Pandas数据类型之category的用法
2021/06/28 Python