Что такое объект "контекст" Vuex?

Я пытаюсь лучше понять, что такое объект "контекст" в Vuex.

на контекст объекта упоминается много раз в документации Vuex. Например, в https://vuex.vuejs.org/en/actions.html, мы имеем:

обработчики действий получают объект контекста, который предоставляет тот же набор методы / свойства экземпляра store, поэтому вы можете вызвать контекст.совершить совершить мутация...

Я понимаю как использовать его, а также что мы можем использовать деструктурирование, если мы хотим использовать только "фиксацию" из объекта контекста, но надеялись на немного большую глубину, чтобы я мог лучше понять, что происходит.

для начала я нашел пару ~ 8,5-летних сообщений на "объекте контекста" в качестве шаблона: что такое шаблон проектирования объекта контекста? и можете ли вы объяснить дизайн контекста шаблон?

однако, в частности, для Vuex, я хотел бы лучше понять:

  1. что такое объект контекста / какова его цель?
  2. что все свойства/методы, которые он делает доступными для использования в Vuex?

спасибо!

2 ответов


С документация вы указали, что можете читать:

мы увидим, почему этот объект контекста не является экземпляром хранилища, когда мы введем модули позже.

основная идея объекта контекста состоит в том, чтобы абстрагировать область текущего модуль. Если вы просто доступ 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
}

для начала я нашел пару ~ 8,5-летних сообщений на "объекте контекста" в качестве шаблона ...

Я думаю, вы слишком много читаете.

Я не думаю, что документы Vuex ссылаются на какой-то конкретный вид "объекта контекста", который известен и определен в другом месте, они просто означают, что объект, который передается обработчикам действий (и в других ситуациях, как описано в документах), является пользовательским объектом, который они см. как "контекстный" объект по собственному определению.

причина, по которой они предоставляют этот объект, заключается в том, что он содержит свойства, специфичные для модуль для этого конкретного обработчика.