查看Vuex的官方文檔中關于Actions的部分,發(fā)現(xiàn)并沒有關于參數(shù)傳遞的示例,又恰巧碰到了這個問題,于是搜索查看了半天資料,將其使用方法整理了一下:
注意: actions中的方法只能有一個參數(shù)(payload),如果傳遞一個以上的參數(shù),多余的參數(shù)并不會被傳遞過去.
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.組件中分發(fā)Actions:
2.1 使用dispatch分發(fā):
methods:{
increment(payload){
return this.$store.increment;
}
}
2.2 使用mapActions分發(fā):
import {mapActions} from 'vuex';
//這里無需傳遞參數(shù)
methods:{
...mapActions(['increment'])
}
3.組件中使用Actions:
<button v-on:click="increment(payload)">increment</button>