查看Vuex的官方文檔中關(guān)于Actions的部分,發(fā)現(xiàn)并沒(méi)有關(guān)于參數(shù)傳遞的示例,又恰巧碰到了這個(gè)問(wèn)題,于是搜索查看了半天資料,將其使用方法整理了一下:
注意: actions中的方法只能有一個(gè)參數(shù)(payload),如果傳遞一個(gè)以上的參數(shù),多余的參數(shù)并不會(huì)被傳遞過(guò)去.
1.注冊(cè)Actions:
有兩種方式注冊(cè)Actions:
1.1 使用context注冊(cè)Actions
actions: {
increment (context,payload) {
context.commit('increment',payload)
}
}
1.2 使用{commit}注冊(cè)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';
//這里無(wú)需傳遞參數(shù)
methods:{
...mapActions(['increment'])
}
3.組件中使用Actions:
<button v-on:click="increment(payload)">increment</button>