详解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内容过滤选择器用法分析
Feb 10 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
Dec 18 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
JavaScript实现缓动动画
Nov 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
php4的session功能评述(二)
2006/10/09 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
DWR Ext 加载数据
2009/03/22 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
使用Python处理BAM的方法
2018/09/28 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
Django REST framework 视图和路由详解
2019/07/19 Python
python 回溯法模板详解
2020/02/26 Python
python如何支持并发方法详解
2020/07/25 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
护士自我评价范文
2014/01/25 职场文书
应届大学生求职信
2014/07/20 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
单位接收证明格式
2015/06/18 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
Python类方法总结讲解
2021/07/26 Python
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers