web-dev-qa-db-fra.com

Qu'est-ce que l'objet "contexte" Vuex?

J'essaie de mieux comprendre ce qu'est l'objet "contextuel" dans Vuex.

objet contextuel est mentionné à plusieurs reprises dans la documentation Vuex. Par exemple, dans https://vuex.vuejs.org/en/actions.html , nous avons:

Les gestionnaires d'actions reçoivent un objet contextuel qui expose le même ensemble de méthodes/propriétés sur l'instance de magasin, vous pouvez donc appeler context.commit pour valider une mutation ...

Je comprends comment pour l'utiliser, et aussi que nous pouvons utiliser la déstructuration si nous voulons seulement utiliser le "commit" de l'objet contextuel, mais j'espérais un peu plus de profondeur, juste pour que je peut mieux comprendre ce qui se passe.

Pour commencer, j'ai trouvé quelques messages de ~ 8,5 ans sur "l'objet contextuel" comme modèle: qu'est-ce que le modèle de conception d'objet contextuel? et Pouvez-vous expliquer le modèle de conception contextuelle?

Cependant, spécifiquement pour Vuex, j'aimerais une meilleure compréhension de:

  1. Quel est l'objet contextuel/quel est son but?
  2. Quelles sont toutes les propriétés/méthodes qu'il met à disposition pour utiliser dans Vuex?

Je vous remercie!

19
Kobi

De la documentation vous avez indiqué que vous pouvez lire:

Nous verrons pourquoi cet objet de contexte n'est pas l'instance de magasin lui-même lorsque nous présenterons les modules plus tard.

L'idée principale de l'objet contextuel est d'abstraire la portée du module actuel . Si vous accédez simplement à store.state, ce sera toujours l'état racine.

L'objet contextuel des actions et ses propriétés/méthodes sont décrits ici dans le code source et également référencés dans le documentation API

Voici la liste:

{
  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
}
18
rayfranco

Pour commencer, j'ai trouvé un couple de ~ 8,5 ans sur "l'objet contextuel" comme modèle ...

Je pense que vous en lisez trop.

Je ne pense pas que les documents Vuex font référence à un type spécifique d '"objet de contexte" qui est connu et défini ailleurs, ils signifient simplement que l'objet qui est passé aux gestionnaires d'actions (et dans d'autres situations comme décrit dans les documents) est un objet personnalisé auquel ils se réfèrent comme un objet "contextuel" par leur propre définition.

La raison pour laquelle ils fournissent cet objet est qu'il contient des propriétés spécifiques au module pour ce gestionnaire d'actions particulier.

5
Decade Moon