详解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 相关文章推荐
javascript cookies操作集合
Apr 12 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
js实现文字滚动效果
Mar 03 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
May 16 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
Vue.js在使用中的一些注意知识点
Apr 29 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
vue项目打包部署到服务器的方法示例
Aug 27 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
js继承的这6种方式!(上)
Apr 23 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
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
vue--vuex详解
2019/04/15 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
python实现的重启关机程序实例
2014/08/21 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python 读取文件并替换字段的实例
2018/07/12 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
python字典一键多值实例代码分享
2019/06/14 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
python 如何快速复制序列
2020/09/07 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
客服服务心得体会
2013/12/30 职场文书
打架检讨书100字
2014/01/08 职场文书
十岁生日答谢词
2015/01/05 职场文书
团员年度个人总结
2015/02/26 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
Redis 常见使用场景
2021/08/30 Redis