web-dev-qa-db-fra.com

Comment accéder aux getters et aux mutations du module Vuex?

J'essaie de passer à Vuex au lieu de mon objet de magasin local, et je dois dire que je ne trouve pas la documentation aussi claire qu'ailleurs dans le monde de Vue.js. Supposons que j'ai un module Vuex appelé «produits», avec son propre état, des mutations, des accesseurs, etc. Comment faire référence à une action de ce module appelée, par exemple, «clearWorking Data»? La documentation donne cet exemple d'accès à l'état d'un module:

store.state.a // -> moduleA's state

Mais rien que je puisse voir à propos des accesseurs, des mutations, des actions, etc.

22
John Moore

Dans votre exemple, il s'agirait de store.dispatch('products/clearWorkingData') (nom_fonction) où vous pouvez considérer les actions/mutations comme un système de fichiers. Plus les modules sont profonds, plus ils sont imbriqués dans l'arborescence.

vous pouvez donc utiliser store.commit('first/second/third/method') si vous avez un arbre de trois niveaux de profondeur.

14
Justin MacArthur

Autre ajout à la réponse acceptée, si vous devez transmettre des paramètres au getter (par exemple, pour extraire un élément spécifique de la collection de magasins), vous devez le transmettre comme suit:

this.$store.getters['yourModuleName/someGetterMethod'](myParam)

Je ne pense pas que j'aime beaucoup cette notation, mais c'est ce qu'elle est - du moins pour le moment.

1
Peter Kassenaar