详解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 dialog键盘事件代码
Aug 01 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
JQuery中SetTimeOut传参问题探讨
May 10 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
javascript中this的四种用法
May 11 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
JS如何判断json是否为空
Jul 06 Javascript
浅谈js中test()函数在正则中的使用
Aug 19 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
Vue框架下引入ActiveX控件的问题解决
Mar 25 Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 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
php5 图片验证码实现代码
2009/12/11 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
详解Python中for循环是如何工作的
2017/06/30 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Python运行DLL文件的方法
2020/01/17 Python
详解Python 循环嵌套
2020/07/09 Python
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
暑假实习求职信范文
2013/09/22 职场文书
北大自主招生自荐信
2013/10/19 职场文书
夏季奶茶店创业计划书
2014/01/16 职场文书
活动总结格式
2014/08/30 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
2015年领班工作总结
2015/04/29 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL
css3 选择器
2022/05/11 HTML / CSS