详解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 UI 1.72 之datepicker
Dec 29 Javascript
基于json的jquery地区联动效果代码
Jul 06 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
PHP获取当前页面完整URL的方法
Dec 02 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
JavaScript面向对象精要(下部)
Sep 12 Javascript
微信小程序实现图片上传、删除和预览功能的方法
Dec 18 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
js加减乘除精确运算方法实例代码
Jan 17 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
php Try Catch异常测试
2009/03/01 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
javascript import css实例代码
2008/07/18 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python实现对输入的密文加密
2019/03/20 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
董事长秘书岗位职责
2013/11/29 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
公司任命书范本
2014/06/04 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
python 提取html文本的方法
2021/05/20 Python
浅谈pytorch中的dropout的概率p
2021/05/27 Python
以下牛机,你有几个
2022/04/05 无线电