Maison > interface Web > Voir.js > En savoir plus sur l'état et les getters dans Vuex

En savoir plus sur l'état et les getters dans Vuex

青灯夜游
Libérer: 2021-11-24 19:56:02
avant
1783 Les gens l'ont consulté

Les organes internes de Vuex sont composés de cinq parties : State, Getter, Mutation, Action et Module. Cet article vous donnera d'abord une compréhension approfondie de State et Getter dans Vuex. J'espère qu'il vous sera utile !

En savoir plus sur l'état et les getters dans Vuex

Vuex_State

Vuex est un outil de gestion d'état pour vue, afin de permettre à plusieurs composants de partager plus facilement leur état. [Recommandation associée : "tutoriel vue.js"]

Installer

npm install vuex --save复制代码
Copier après la connexion

Utiliser

import Vue from 'vue';import Vuex from 'vuex';

Vue.use(Vuex);const store = new Vuex.Store({  state: {    count: 0
  }
})new Vue({
  store,
})
Copier après la connexion

State

Une arborescence d'état unique, utilisant un objet pour contenir tous les états au niveau de l'application.

Obtenir l'état de Vuex dans le composant Vue

Vuex fournit un mécanisme pour "injecter" l'état du composant dans chaque sous-composant via l'option de magasin (appelez Vue.use(Vuex)).

En enregistrant l'option store dans l'instance racine, l'instance store sera injectée dans tous les sous-composants sous le composant racine, et les sous-composants seront accessibles via this.$store.

<div class="home">
  {{ $store.state.count }}</div>复制代码
Copier après la connexion

fonction d'assistance mapState

Lorsqu'un composant doit obtenir plusieurs états, déclarer ces états en tant que propriétés calculées sera quelque peu répétitif et redondant. Pour résoudre ce problème, nous pouvons utiliser la fonction d'assistance mapState pour nous aider à générer des propriétés calculées :

import { mapState } from &#39;vuex&#39;;

computed: {
  ...mapState([&#39;count&#39;]),
},
Copier après la connexion

Utilisez des noms différents :

computed: {
  ...mapState({
    storeCount: state => state.count,
     // 简写
    storeCount: &#39;count&#39;,  // 等同于 state => state.count
  }),
},
Copier après la connexion

Vuex_Getter

propriétés calculées du magasin. La valeur de retour du getter sera mise en cache en fonction de ses dépendances, et ne sera recalculée que lorsque ses valeurs de dépendance changeront.

Getter reçoit l'état comme premier paramètre et les getters comme deuxième paramètre.

getters: {
  doubleCount (state) {    return state.count * 2;
  }
}
Copier après la connexion

Accès via les attributs

Getter sera exposé en tant qu'objet store.getters : this.$store.getters.doubleCount

Accès via les méthodes

Vous pouvez également laisser le getter renvoyer une fonction pour transmettre des paramètres au getter

getters: {
  addCount: state => num => state.count + num;
}
Copier après la connexion
this.$store.addCount(3);
Copier après la connexion

fonction auxiliaire mapGetters

import { mapsGetters } from &#39;vuex&#39;;

export default {
  computed: {
    ...mapGetters([
      &#39;doubleCount&#39;,
      &#39;addCount&#39;,
    ])
  }
}
Copier après la connexion

Si vous souhaitez donner un autre nom à une propriété getter, utilisez le formulaire objet :

mapGetters({
   // 把 `this.doneCount` 映射为 `this.$store.getters.doneTodosCount` 
  storeDoubleCount: &#39;doubleCount&#39;
})
Copier après la connexion

Pour plus de connaissances sur la programmation, veuillez visiter : Introduction à la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal