详解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的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
Ubuntu 11.10 安装Node.js的方法
Nov 30 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
javascript HTML5文件上传FileReader API
Mar 27 Javascript
JS Attribute属性操作详解
May 19 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
详释JavaScript执行环境与执行栈
Apr 02 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
Oct 24 Javascript
vue实现广告栏上下滚动效果
Nov 26 Vue.js
使用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
PHP5/ZendEngine2的改进
2006/10/09 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python的另外几种语言实现
2015/01/29 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
护士自我评价范文
2014/01/25 职场文书
经营理念口号
2014/06/21 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
python munch库的使用解析
2021/05/25 Python
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python