查看Vuex的官方文档中关于Actions的部分,发现并没有关于参数传递的示例,又恰巧碰到了这个问题,于是搜索查看了半天资料,将其使用方法整理了一下:
注意: actions中的方法只能有一个参数(payload),如果传递一个以上的参数,多余的参数并不会被传递过去.
1.注册Actions:
有两种方式注册Actions:
1.1 使用context注册Actions
actions: {
increment (context,payload) {
context.commit('increment',payload)
}
}
1.2 使用{commit}注册Actions
actions: {
increment ({commit},payload) {
context.commit('increment',payload }
}
2.组件中分发Actions:
2.1 使用dispatch分发:
methods:{
increment(payload){
return this.$store.increment;
}
}
2.2 使用mapActions分发:
import {mapActions} from 'vuex';
//这里无需传递参数
methods:{
...mapActions(['increment'])
}
3.组件中使用Actions:
<button v-on:click="increment(payload)">increment</button>