详解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 相关文章推荐
JS location几个方法小姐
Jul 09 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
jQuery 快速结束当前正在执行的动画
Nov 20 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 Javascript
vue源码入口文件分析(推荐)
Jan 30 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
对layui中的onevent 和event的使用详解
Sep 06 Javascript
浅析vue中的provide / inject 有什么用处
Nov 10 Javascript
JS倒计时两种实现方式代码实例
Jul 27 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php 页面执行时间计算代码
2008/12/04 PHP
PHP页面中文乱码分析
2013/10/29 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
清洁工岗位职责
2014/01/29 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
我爱我班主题班会
2015/08/13 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android