我在使用vuex的时候,看到用到了参数解构,但是我很纳闷,这个commit 是从哪里解构来的?哪里提供的commit这个参数? 它的没简化的写法是怎么写的?
actions: {
increment ({ commit }) {
commit('increment')
}
}
我在使用vuex的时候,看到用到了参数解构,但是我很纳闷,这个commit 是从哪里解构来的?哪里提供的commit这个参数? 它的没简化的写法是怎么写的?
actions: {
increment ({ commit }) {
commit('increment')
}
}
Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit
提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和
getters。当我们在之后介绍到 Modules 时,你就知道 context 对象为什么不是 store 实例本身了。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
在vuex的api中action的部分有这样一句话“处理函数总是接受 context 作为第一个参数,payload 作为第二个参数(可选)”。
你可以理解为action中的函数会默认自动获取context这个对象为第一个参数。
而context这个对象拥有和store相同的属性和方法,从图中可以看到。
而increment ({ commit }) { ... }中的参数对象{..}就是指的context对象,而{ commit }就是指的context对象中的commit方法.
没有简化的写法是:
不知道我有没有说清楚,我想命理难说也是想表达这个意思,只是官方文档讲得比较精简。