1/首先vuex中的mutions相当于vue组件中的methods,vuex中建议我们mutions中的方法名用大写,action中定义的方法是用来提交mutions中的方法,所以aciton中的方法也要有方法名,并且方法名有一个参数,这个参数就是vuex的一个实例,通过实例可以获取这个实例的属性和方法。
vuex源码中的实例context 包含以下属性和方法
context = { dispatch: local.dispatch,
commit: local.commit,
getters: local.getters,
state: local.state,
rootGetters: store.getters,
rootState: store.state
}
使用变量解构赋值后{ commit }的commit = context.commit 了
2/actions中的方法是用来commit()方法来提交 mutions中的方法从而来实现异步,
actions:{
add({commit}){
commit('method中的方法名')
}
}
3、那如何执行actions中的的方法呢?有两种方法
(1)在组件中使用this.stroe.dispatch('方法名') (这种方法比较麻烦)
(2)使用vuex中的 mapActions方法 ,先import {mapActions} from 'vuex'
然后在组件中的 methods中添加
methods: {
...mapActions(['increment', 'decrement'])
}