Maison > interface Web > Voir.js > le corps du texte

Explication détaillée de l'utilisation de Mutation dans la gestion de l'état Vuex

藏色散人
Libérer: 2022-08-10 14:47:30
avant
2970 Les gens l'ont consulté

mise à jour du statut des mutations

La seule façon de mettre à jour le statut du magasin dans vuex est de soumettre une mutation

La mutation se compose principalement de deux parties :

  • Le type d'événement de la chaîne (type)

  • Une fonction de rappel (gestionnaire), le premier paramètre de la fonction de rappel est l'état
    Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex

mutations passant des paramètres

Lors de la mise à jour des données via des mutations, nous pouvons avoir besoin de transporter des paramètres supplémentaires
Les paramètres sont appelés mutations et sont des charges utiles (Payload)

Exemple :Le premier bouton clique sur le compteur+5, le deuxième bouton clique sur le compteur+10

Fichier App.vue

<button>+5</button>
<button>+10</button>
Copier après la connexion

fichier index.js dans le fichier du magasin

 mutations: {
    incrementCount(state, count) {
      state.counter += count
    }
  },
Copier après la connexion

Fichier App.vue

methods: {
    addCount(count) {
      this.$store.commit("incrementCount", count);
    }
  }
Copier après la connexion

style de soumission des mutations

Style de soumission normal

this.$store.commit("incrementCount", count);
Copier après la connexion

Soumettez comme ça, si vous imprimez le nombre, vous obtenez le nombre

incrementCount(state, count) {
      // state.counter += count
      console.log(count);
    }
Copier après la connexion

Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex
Style de soumission spécial

this.$store.commit({
        type: "incrementCount",
        count
      });
Copier après la connexion
Copier après la connexion

Si vous imprimez le nombre, vous obtenez un objet

    incrementCount(state, count) {
      // state.counter += count
      console.log(count);
    }
Copier après la connexion

Explication détaillée de lutilisation de Mutation dans la gestion de létat VuexC'est donc plus approprié dans les mutations

incrementCount(state, payload) {
      state.counter += payload.count
      console.log(payload.count);
    }
Copier après la connexion

Soumettre dans App.vue

this.$store.commit({
        type: "incrementCount",
        count
      });
Copier après la connexion
Copier après la connexion

règles de réponse des mutations

L'état dans vuex est réactif Lorsque les données de l'état changent, le composant vue sera automatiquement mis à jour.

Lorsque nous modifions la valeur dans l'objet d'origine, la page changera également

state: {
    info: {
      name: 2401,
      age: 18
    }
  },
   mutations: {
    // 改变info中的值
    infoChange(state) {
      state.info.age = 10
    }
  },
Copier après la connexion

Dans App.vue

<h2>{{$store.state.info}}</h2>
<button>infoChange</button>
Copier après la connexion
 infoChange() {
      this.$store.commit("infoChange");
    }
Copier après la connexion

Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex
Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex
Ajouter de la valeur à l'objet d'origine

Ne peut pas être réactive La méthode

state.info['address'] = '地球';
Copier après la connexion

En fait, l'adresse a été ajoutée à l'info, mais cette méthode ne peut pas être responsive, elle n'est donc pas affichée sur la pageExplication détaillée de lutilisation de Mutation dans la gestion de létat VuexMéthode responsive

Vue.set(state.info, "address", '地球');
Copier après la connexion

Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex
Supprimer l'objet d'origine La valeur

ne peut pas être une méthode responsive

delete state.info.age;
Copier après la connexion

En fait, l'âge dans info a été supprimé, mais cette méthode ne peut pas être responsive, il y a donc toujours une méthode age
Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex
responsive

Vue.delete(state.info, "age")
Copier après la connexion
sur la page

Explication détaillée de lutilisation de Mutation dans la gestion de létat Vuex

type de constante de mutations

Officiellement recommandé, définissez les noms de méthodes dans les mutations comme des constantes, ce qui est moins sujet aux erreurs et plus facile à gérer et à maintenir

Créez un fichier mutations-type.js sous le fichier de magasin pour stocker les constantes

export const INCREMENT = "increment"
export const DECREMENT = "decrement"
Copier après la connexion

Importez et utilisez

import {
  INCREMENT,
  DECREMENT
} from "../store/mutations-type"
Copier après la connexion
 mutations: {
    [INCREMENT](state) {
      state.counter++;
    },
    [DECREMENT](state) {
      state.counter--;
    },
  }
Copier après la connexion

dans le fichier index.js sous le fichier du magasin. Importez et utilisez

import { INCREMENT, DECREMENT } from "../src/store/mutations-type";
Copier après la connexion
methods: {
    add() {
      this.$store.commit(INCREMENT);
    },
    sub() {
      this.$store.commit(DECREMENT);
    },
   }
Copier après la connexion

dans le fichier App.vue [Recommandations associées : tutoriel vidéo vue.js]

.

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:csdn.net
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