1. EinleitungWerfen wir einen Blick auf eine professionellere Einführung in Vuex:
Kurz gesagt, Vuex verwendet eine globale objektähnliche Form, um die gemeinsamen Daten aller Komponenten zu verwalten. Wenn Sie die Daten dieses globalen Objekts ändern möchten, müssen Sie sie auf die von Vuex bereitgestellte Weise ändern (Sie können sie nicht nach Belieben auf Ihre eigene Weise ändern). 2. VorteileDer Unterschied zwischen der Vuex-Statusverwaltung und der Verwendung herkömmlicher globaler Variablen:
3. Nutzungsschritte1. Installieren Sie Vuexnpm installiere vuex --save 2. Referenz VuexVue von „vue“ importieren Vuex von „vuex“ importieren Vue.Verwenden(Vuex) 3. Erstellen Sie ein Lager Um Vuex zu verwenden, müssen wir einen //Einen Shop erstellen const store = neuer Vuex.Store({}); 4. Enthaltene Module
Die Rolle von Vuex ähnelt der eines globalen Objekts. Vuex verwendet einen einzelnen Zustandsbaum und verwendet ein Objekt „Zustand“, um alle Zustände der gesamten Anwendungshierarchie aufzunehmen. Sie können diese Zustände als eine Reihe globaler Variablen und Daten verstehen. 1. Staat Angenommen, wir haben eine globale //Einen Shop erstellen const store = neuer Vuex.Store({ //state speichert den Status der Anwendungsschicht state:{ Anzahl: 5 // Gesamt: 5 } }); 2. Getter Man kann davon ausgehen, dass Angenommen, wir möchten einen neuen Status const store = neuer Vuex.Store({ //state speichert den Status der Anwendungsschicht state:{ Anzahl: 5 // Gesamt: 5 }, Getter: { neuerAnzahl:Zustand => Zustand.Anzahl * 3 } }); In Komponente abrufen Standard exportieren { berechnet: { neueAnzahl(){ gib dies zurück.$store.getters.newCount; } } }; 3. Mutationen Die einzige Möglichkeit, die Wir haben in Akzeptiert const store = neuer Vuex.Store({ //state speichert den Status der Anwendungsschicht state:{ Anzahl: 5 // Gesamt: 5 }, // Mutationen sind die einzige Möglichkeit, Daten im Status Mutationen zu ändern:{ Inkrement(Zustand, Wert) { Zustand.Anzahl += Wert; } } }); Wenn wir Methoden: { getVal(Ereignis) { //Den aktuellen Schlüsselwert abrufen let value = event.target.dataset.value; //Senden Sie eine Mutation mit dem Namen increment per Commit this.$store.commit("Inkrement", Wert); } } In Komponente abrufen Standard exportieren { berechnet: { zählen(){ gib dies zurück.$store.state.count; } } }; 4. Aktion
exportiere standardmäßig neuen Vuex.Store({ //Datenstatus speichern: { Objekt: {}, }, //4. Behandeln Sie Mutationen mit den Methoden in Commit-Mutationen: { getParam(Zustand, Objekt) { //5. Ändern Sie die Daten im Status state.obj = Object } }, //2. Akzeptieren Sie die von den Dispatch-Aktionen übergebenen Methoden und Parameter: { getParamSync(store, Objekt) { // Asynchrone Operationen verarbeiten setTimeout(() => { //3. Senden Sie eine Mutation namens getParam über Commit //Die Aktionsfunktion empfängt ein Store-Instanzobjekt, sodass Sie store.commit aufrufen können, um eine Mutation festzuschreiben store.commit('getParam', Objekt); }, 1000) } } }) Dann können wir es in der Komponente aufrufen. Methoden: { getVal() { lass name='xia'; sei Alter = '26'; sei Geschlecht = 'Mann'; //1. Übergeben Sie die Methode getParamSync und mehrere Parameter {name, age, sex} über dispatch an Aktionen dies.$store.dispatch('getParamSync',{Name,Alter,Geschlecht}) } } 5. Module Mit zunehmender Komplexität des Projekts wird Vuex zur Vereinfachung seiner Verwaltung im Allgemeinen entsprechend seiner Funktionen in verschiedene Vue von „vue“ importieren Vuex von „vuex“ importieren Status aus „./state“ importieren Mutationen aus „./mutations“ importieren Aktionen aus „./actions“ importieren importiere * als Getter aus './getters' importiere ModulA aus './Modul/ModulA' // Modul A importiere ModulB aus './Modul/ModulB' // Modul B Vue.Verwenden(Vuex) exportiere standardmäßig neuen Vuex.Store({ Aktionen, Getter, Zustand, Mutationen, Module: ModulA, ModulB } })
// Jedes Modul hat seinen eigenen Status, seine eigene Mutation, Aktion, Getter und sogar verschachtelte Untermodule export default { Zustand: { Text: 'ModulA' }, Getter: {}, Mutationen: {}, Aktionen: {} } Dann können wir es in der Komponente aufrufen. <Vorlage> <div Klasse="Demo"> <h1>{{getText1}}</h1> <h1>{{getText2}}</h1> </div> </Vorlage> berechnet: { getText1(){ gib dies zurück.$store.state.moduleA.text; }, // oder ...mapState({ getText2: Status => Status.ModulB.Text; }) } Daraus können wir erkennen, dass der Zustand innerhalb des Moduls lokal ist und nur dem Modul selbst gehört, sodass von außen über den entsprechenden Modulnamen darauf zugegriffen werden muss. 5. Das einfachste Projektbeispiel von Vuex Verwenden Sie die Vuex-Syntax Sugar 1. Speicherung von Dateneine.vue-Datei importiere { mapMutations } von "vuex"; // Importiere mapMutations Standard exportieren { Methoden: { ...mapMutations({ // Verknüpfe changeNews mit SET_NEWS in Mutationen changeNews: "SET_NEWS" }), einreichen(){ // Senden Sie eine Mutation mit dem Namen changeNews und übergeben Sie den Parameter val let val = 'Testnachrichten'; this.changeNews(val); // entspricht this.$store.commit("changeNews", val); } } } 2. Daten abrufenb.vue-Datei importiere { mapGetters } von "vuex"; // MapGetters importieren Standard exportieren { berechnet: { //Verwende vuex zum Lesen der Daten (die Daten in getters.js werden gelesen) // Entspricht this.$store.getters.news (Vuex-Syntax-Sugar) ...mapGetters(["Neuigkeiten"]) }, erstellt() { // Holen Sie sich die Nachrichtendaten in Gettern console.log(this.news); } } 3. Dateiverzeichnisstruktur speichernindex.jsVue von „vue“ importieren Vuex von „vuex“ importieren Status aus „./state“ importieren Mutationen aus „./mutations“ importieren Aktionen aus „./actions“ importieren importiere * als Getter aus './getters' //Jedes Mal, wenn der Status geändert wird, wird das Protokoll in der Konsole ausgedruckt importiere createLogger aus „vuex/dist/logger“ Vue.Verwenden(Vuex) const debug = process.env.NODE_ENV !== 'Produktion' exportiere standardmäßig neuen Vuex.Store({ Aktionen, Getter, Zustand, Mutationen, strict: debug, // Aktiviere den strikten Modus, wenn debug=true (Leistungsverlust) Plugins: debuggen? [createLogger()]: [] }) Zustand.jskonstanter Zustand = { Nachricht: {} } Standardzustand exportieren; mutationen.jsconst Mutationen = { SET_NEWS(Status, Wert) { staat.news = val } } Standardmutationen exportieren; Aktionen.js//Asynchrone Verarbeitung const actions = { M_NEWS({ Commit }, Wert) { commit('SET_NEWS', val); // Mutationen committen } } Standardaktionen exportieren; getters.js//Normalerweise werden Daten über Getter abgerufen (this.$store.getters.news;) export const news = state => state.news // Direkt zuordnen, ohne weitere Verarbeitung durchzuführen 4. Nutzung des Shops Referenz in Store aus './store' importieren //Vuex-Speicherdatei neue Vue({ el: '#app', Router, speichern, Komponenten: App }, Vorlage: '<App/>' }) Dies ist das Ende dieses Artikels mit der detaillierten Erklärung des Gesamtfalls von Vuex. Weitere relevante Vuex-Inhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der MySQL-Abfragesyntax
>>: Konfigurieren Sie die Java-Entwicklungsumgebung in Ubuntu 20.04 LTS
<br />Hallo zusammen! Es ist mir eine Ehre, ...
I. Erläuterung des strikten Modus Gemäß den Einsc...
Ich habe den Quellcode des Fabric-Projekts noch e...
Ob MySQL bei der Ausführung von Vorgängen wie Ein...
1. Nginx-Dienstgrundlage Nginx (Engine x) wurde s...
Vor einiger Zeit habe ich einen Blogbeitrag mit d...
1. Erstellen Sie ein Repository im angegebenen Ve...
Vorwort Ich bin davon überzeugt, dass bei der Ent...
HTML hat versucht, sich von der Präsentation weg ...
Beim Ändern des Standarddatums-/Uhrzeitwerts über...
Einführung yum (Yellow dog Updater, Modified) ist...
Sie können den folgenden Befehl verwenden: Docker...
Im vorherigen Artikel haben wir das ausführliche ...
1. Der in der Schaltfläche verwendete Wert bezieht...
1. Verwenden Sie das Playbook von Ansible, um htt...