详解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 相关文章推荐
jQuery学习5 jQuery事件模型
Feb 07 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
Bootstrap实现登录校验表单(带验证码)
Jun 23 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
js实现抽奖效果
Mar 27 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
Nov 02 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
利用JS代码自动删除稿件的普通弹幕功能
Sep 20 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 session 错误
2009/05/21 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
js比较日期大小的方法
2015/05/12 Javascript
require.js的用法详解
2015/10/20 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python笔记(2)
2012/10/24 Python
python的re模块应用实例
2014/09/26 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python性能提升之延迟初始化
2016/12/04 Python
Python实现excel转sqlite的方法
2017/07/17 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
python中的协程深入理解
2019/06/10 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
大一新生检讨书
2014/10/29 职场文书
财务个人年度总结范文
2015/02/26 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
大学生村官工作心得体会
2016/01/23 职场文书