在vuex教程中,有這樣一段描述:
實踐中,我們會經常用到 ES2015 的 參數解構 來簡化代碼(特別是我們需要調用 commit 很多次的時候):
actions: {
increment ({ commit }) {
commit('increment')
}
}
看到這裏,需要了解action API
actions
類型: { [type: string]: Function }
在 store 上註冊 action。處理函數總是接受 context 作爲第一個參數,payload 作爲第二個參數(可選)。
context 對象包含以下屬性:
{
state, // 等同於 `store.state`,若在模塊中則爲局部狀態
rootState, // 等同於 `store.state`,只存在於模塊中
commit, // 等同於 `store.commit`
dispatch, // 等同於 `store.dispatch`
getters, // 等同於 `store.getters`
rootGetters // 等同於 `store.getters`,只存在於模塊中
}
所以說,
actions: {
increment (context) {
context.commit('increment')
}
}
相當於:
actions:{
increment ({ commit: context.commit }) {
context.commit('increment');
}
}
相當於:
actions: {
increment ({ commit }) {
commit('increment')
}
}