在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')
}
}