我试图更好地理解Vuex中的“上下文”对象是什么。
在Vuex文档中多次引用 上下文对象 。例如,在https://vuex.vuejs.org/en/actions.html中,我们有:
动作处理程序接收一个公开同一组的上下文对象 商店实例上的方法/属性,因此您可以调用 context.commit提交变异......
我理解如何使用它,而且如果我们只想使用来自上下文对象的“commit”,我们可以使用解构,但希望更深入一点,只是如此我可以更好地了解发生了什么。
首先,我在“上下文对象”上发现了一对~8.5岁的帖子作为模式: what is context object design pattern?和 Can you explain the Context design pattern?
然而,特别是对于Vuex,我希望更好地理解:
谢谢!
答案 0 :(得分:16)
从您指出的documentation,您可以阅读:
我们将在稍后介绍模块时看到为什么这个上下文对象不是商店实例本身。
上下文对象的主要思想是抽象当前Module的范围。如果您只是访问store.state
,它将始终是根状态。
动作及其属性/方法的上下文对象描述为here in the source code,并在API documentation
中引用以下是清单:
{
state, // same as store.state, or local state if in modules
rootState, // same as store.state, only in modules
commit, // same as store.commit
dispatch, // same as store.dispatch
getters, // same as store.getters, or local getters if in modules
rootGetters // same as store.getters, only in modules
}
答案 1 :(得分:5)
首先,我在“上下文对象”中发现了一对~8.5岁的帖子作为模式......
我觉得你读的太多了。
我认为Vuex文档并不是指某种特定类型的“上下文对象”,它在其他地方是已知和定义的,它们只是指传递给动作处理程序的对象(以及其他情况,如docs)是一个自定义对象,他们通过他们自己的定义将其称为“上下文”对象。
它们提供此对象的原因是因为它包含特定于该特定操作处理程序的module的属性。
答案 2 :(得分:1)