Vuex“上下文”对象是什么?

vue.js Vue.js

蛋蛋古一

2020-03-12

我试图更好地了解Vuex中的“上下文”对象。

所述上下文对象在Vuex文档中提及无数次。例如,在https://vuex.vuejs.org/en/actions.html中,我们具有:

动作处理程序会收到一个上下文对象,该对象在商店实例上公开了相同的方法/属性集,因此您可以调用context.commit提交一个变异...

我知道如何使用它,而且,如果我们只想使用上下文对象中的“提交”,但我们希望可以进行更深入的介绍,则可以使用分解,以便更好地了解发生了什么。

首先,我在“ context object”上找到了大约8.5年的帖子,作为一种模式: 什么是context object设计模式?并且 可以解释上下文设计模式吗?

但是,特别是对于Vuex,我希望对以下方面有更好的了解:

  1. 什么是上下文对象/其目的是什么?
  2. Vuex中可使用的所有属性/方法是什么?

谢谢!

第1190篇《Vuex“上下文”对象是什么?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
樱Mandy 2020.03.12

您指出文档中,您可以阅读:

稍后介绍模块时,我们将看到为什么此上下文对象不是商店实例本身。

上下文对象的主要思想是抽象当前模块的范围如果仅访问store.state,它将始终是根状态。

动作的上下文对象及其属性/方法在源代码中进行了描述并在API文档中进行了引用

这是清单:

{
  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
}
猴子村村 2020.03.12

首先,我在“上下文对象”上发现了大约8.5年的帖子,作为一种模式...

我认为您对它的了解过多。

我不认为Vuex文档是指某种在其他地方已知和定义的“上下文对象”,它们只是表示传递给动作处理程序的对象(以及在文档中所述的其他情况)是一个自定义对象,根据他们自己的定义它们被称为“上下文”对象。

它们之所以提供此对象,是因为它包含特定于该特定操作处理程序模块的属性

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android