Heim > Web-Frontend > View.js > Detaillierte Erläuterung der Verwendung von Mutation in der Vuex-Zustandsverwaltung

Detaillierte Erläuterung der Verwendung von Mutation in der Vuex-Zustandsverwaltung

藏色散人
Freigeben: 2022-08-10 14:47:30
nach vorne
3007 Leute haben es durchsucht

„Aktualisierung des Status der Mutationen“

Eine Callback-Funktion (Handler). Der erste Parameter der Callback-Funktion ist der Status und sind Nutzlasten (Payload).

<button>+5</button>
<button>+10</button>
Nach dem Login kopieren
Mutationen-Übermittlungsstil

Normaler Übermittlungsstil

 mutations: {
    incrementCount(state, count) {
      state.counter += count
    }
  },
Nach dem Login kopieren

Senden Sie so: Wenn Sie die Anzahl drucken, erhalten Sie die Anzahl

methods: {
    addCount(count) {
      this.$store.commit("incrementCount", count);
    }
  }
Nach dem Login kopieren
  • Spezieller Übermittlungsstil
  • this.$store.commit("incrementCount", count);
    Nach dem Login kopieren

    Wenn Sie die Anzahl drucken, erhalten Sie ein Objekt

    incrementCount(state, count) {
          // state.counter += count
          console.log(count);
        }
    Nach dem Login kopieren
    Detaillierte Erläuterung der Verwendung von Mutation in der Vuex-ZustandsverwaltungEs ist also angemessener, dies in Mutationen zu tun
this.$store.commit({
        type: "incrementCount",
        count
      });
Nach dem Login kopieren
Nach dem Login kopieren
In App.vue senden

    incrementCount(state, count) {
      // state.counter += count
      console.log(count);
    }
Nach dem Login kopieren

Mutationsantwortregeln


Der Status in Vuex reagiert, wenn sich die Daten im Status ändern aktualisieren.

Wenn wir den Wert im Originalobjekt ändern, ändert sich auch die Seite

incrementCount(state, payload) {
      state.counter += payload.count
      console.log(payload.count);
    }
Nach dem Login kopieren

In App.vue

this.$store.commit({
        type: "incrementCount",
        count
      });
Nach dem Login kopieren
Nach dem Login kopieren
state: {
    info: {
      name: 2401,
      age: 18
    }
  },
   mutations: {
    // 改变info中的值
    infoChange(state) {
      state.info.age = 10
    }
  },
Nach dem Login kopieren

Fügen Sie dem Originalobjekt einen Wert hinzu

Kann nicht auf die Methode reagieren

<h2>{{$store.state.info}}</h2>
<button>infoChange</button>
Nach dem Login kopieren

Tatsächlich wurde die Adresse zu den Informationen hinzugefügt, aber diese Methode kann nicht reagieren und wird daher nicht auf der Seite angezeigt Detaillierte Erläuterung der Verwendung von Mutation in der Vuex-Zustandsverwaltung kann keine responsive Methode sein

 infoChange() {
      this.$store.commit("infoChange");
    }
Nach dem Login kopieren
Tatsächlich wurde das Alter in den Informationen gelöscht, aber diese Methode kann nicht responsiv sein, daher gibt es immer noch eine Alters-

responsive Methode

Detaillierte Erläuterung der Verwendung von Mutation in der Vuex-Zustandsverwaltung

state.info['address'] = '地球';
Nach dem Login kopieren
auf der Seite

Mutations-Konstantentyp

Offiziell empfohlen, die Methodennamen in Mutationen als Konstanten zu definieren, was weniger fehleranfällig und einfacher zu verwalten und zu warten ist

Erstellen Sie die Datei mutations-type.js unter der Speicherdatei, um Konstanten zu speichern

Vue.set(state.info, "address", '地球');
Nach dem Login kopieren
Importieren und verwenden Sie

delete state.info.age;
Nach dem Login kopieren
Vue.delete(state.info, "age")
Nach dem Login kopieren

in der Datei index.js unter der Store-Datei. Importieren und verwenden Sie

export const INCREMENT = "increment"
export const DECREMENT = "decrement"
Nach dem Login kopieren
import {
  INCREMENT,
  DECREMENT
} from "../store/mutations-type"
Nach dem Login kopieren

in der App.vue-Datei

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Mutation in der Vuex-Zustandsverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage