工作時(shí)候接觸到了VueX對(duì)象式的commit提交方式胎署,順便研究了一下
正常來說我們使用Vuex提交的時(shí)候是這樣的:
this.$store.commit('num', 10)
今天發(fā)現(xiàn)了可以這樣提交:
this.$store.commit({ type:'num',name:'numTool', data: 10 })
這樣做的好處是可以只寫一個(gè) mutations 去根據(jù)傳入的值判斷給哪個(gè) state 賦值,比如:
num (state, param) {
state[param.name] = param.data
}
屬性 type 就是 mutations 里定義的函數(shù)名稱窑滞,其他的隨便寫只要自己清楚即可
完整的便于理解的如下:
//提交
this.$store.commit({ type: 'num', name: 'numTool', data: 10 })
//更改狀態(tài)
const mutations = {
num(state, param) {
state[param.name] = param.data
}
}
//狀態(tài)管理
const state = () => ({
numTool: {},
})