介绍mapActions辅助函数:

Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的;
Action是支持异步操作的,而Mutations只能是同步操作。

简单的:

const mutations = {
add(state,val){
state.count++
},
reduce(state, val){
state.count --
}
}
const actions = {
//这里的actionAdd是组件中和所触发的事件相对应的方法
actionAdd(context){
context.commit('add')//这里的add是mutations中的方法
},
//这里是通过参数结构来简化代码。
actionReduce( { commit } ){
commit('reduce')
}

    Actions接受一个context对象参数,该参数具有和store实例相同的属性和方法,所以我们可以通过context.commit()提交mutations中的方法,

    或者可以通过context.state和context.getters去获取state和getters。

    context作为上下文对象,有共享store实例的属性和方法的权利,但是切记:context并不是store实例本身。

    { commit } 这里直接把commit为属性的对象传过来,简化代码。

Action 通过 store.dispatch 方法触发
add() {
this.$store.dispatch('actionAdd')
},
reduce() {
this.$store.dispatch('actionReduce')
}
Actions支持同样的载荷方式和对象进行分发:
add() {
this.$store.dispatch('actionAdd', {
id: 1
})
},
reduce() {
this.$store.dispatch({
type: 'actionReduce',
id: 2
})
}
actions里对应的方法中第二个参数接受分发是传递的值
<button @click = 'countAdd'>+</button>
<button @click = 'countReduce'>-</button> --------------------------------------------------------
import { mapState, mapMutations, mapActions } from 'vuex'
methods: {
//如果名字不同,使用mapActions辅助函数的对象参数
//...mapActions( { add: 'countAdd', reduce: 'countReduce'} )
//当action中的函数名和组件节点的方法名相同的时候,使用mapActions辅助函数的数组参数
...mapActions( ['countAdd', 'countReduce'] ) }

关于mapState和mapMutations和mapGetters 和mapActions辅助函数的用法及作用(四)-----mapActions的更多相关文章

  1. 关于mapState和mapMutations和mapGetters 和mapActions辅助函数的用法及作用(二)-----mapMutations

    在组件中提交Mutations: import { mapState, mapMutations } from 'vuex' export default { data() { return { ms ...

  2. 关于mapState和mapMutations和mapGetters 和mapActions辅助函数的用法及作用(三)-----mapGetters

    简单的理解: const getters = { newCount: function(state){ return state.count += 5; } } ------------------- ...

  3. 关于mapState和mapMutations和mapGetters 和mapActions辅助函数的用法及作用(一)-----mapState

    一.通过mapState函数的对象参数来赋值: <p>{{ count }}</p> <p>{{ count1 }}</p> <p>{{ c ...

  4. vue:vuex中mapState、mapGetters、mapActions辅助函数及Module的使用

    一.普通store中使用mapState.mapGetters辅助函数: 在src目录下建立store文件夹: ​ index.js如下: import Vue from 'vue'; import ...

  5. vuex中mapState、mapMutations、mapAction的理解

    当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余.为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性. // 在单独构建的版本中辅助函数为 Vue ...

  6. vuex学习与实践——mapState、getter、mapGetters

    1.mapState辅助函数 当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余.为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键 ...

  7. vuex状态管理demo

    vuex状态管理主要包含四个概念  mapState,mapMutations,mapGetters,mapActions. 编写vuex文件夹下面的store.js import Vue from ...

  8. vue使用--vuex快速学习与使用

    什么是vuex? Vuex核心概念 Vuex安装与使用 1.安装 2.目录结构与vuex引入 3.store中变量的定义.管理.派生(getter) 4.vuex辅助函数的使用说明 Vuex刷新数据丢 ...

  9. vuex基础知识总结

    项目中要求添加vuex,根据学习我这个小白总结了一点自己的心得,供大家参考 在学习之前,要知道两件事 为什么要用vuex?vuex要什么场景下应用? 简单点解释一下 1.项目中应用了vue脚手架之后, ...

随机推荐

  1. 【bzoj1965】[Ahoi2005]SHUFFLE 洗牌

    x*2^m==l (mod n+1)x=(n/2+1)^m*l mod n+1 #include<algorithm> #include<iostream> #include& ...

  2. Swift学习笔记十四:构造(Initialization)

         类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态.     你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...

  3. Spring Boot集成MyBatis与分页插件

    Maven依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>p ...

  4. SAP更改日志记录表

    CDHDR  更改日志表头 CDPOS  更改日志行项目 SAP中修改频率较低的定制表(T001等)一般都会有修改记录存在,查看一个表有没有修改记录可以在SE11中查看他的技术设置,如果其中的LOG ...

  5. shell脚本常用(记)

    1.变量检查,判空 a.直接变量判断  if [ ! $1 ];then ..empty..fi b.变量通过" "引号引起来  if [ ! -n "$1" ...

  6. POJ3694 Network —— 边双联通分量 + 缩点 + LCA + 并查集

    题目链接:https://vjudge.net/problem/POJ-3694 A network administrator manages a large network. The networ ...

  7. ip地址管理与子网划分

    1,高层协议(主机到主机或应用问题)负责名字到地址的映射.国际模块负责网际地址到局域网地址的映射.底层(如本地网或网关)程序的任务是负责本地网地址到路由上的映射. 2,地址是由4个八位字节组成(32位 ...

  8. I.MX6 MAC Address 导致的系统崩溃

    /**************************************************************************** * I.MX6 MAC Address 导致 ...

  9. BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组

    BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印 ...

  10. js中的call和apply方法

    call方法: 语法:call(thisObj,[arg1,arg2,arg3,...]); 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用 ...