Hintergrund: Während des Nachfrageentwicklungsprozesses geben einige Schnittstellen Ergebnisse mit vielen Feldern zurück, die auf der Seite angezeigt werden müssen. Normalerweise können diese Felder als berechnete Eigenschaften in der VUE-Datei gekapselt oder die entsprechenden Felder den Feldern in den Daten neu zugewiesen werden, um die Verwendung zu vereinfachen. wie folgt: berechnet(){ Anzahl1(){ gib dies zurück.Zielobjekt.Anzahl1 }, anzahl2(){ gib dies zurück.Zielobjekt.Anzahl2 }, // ... // Stell dir das vor. Sie müssen 5 oder 10 Mal ähnlichen Code schreiben} Doch egal, welche Methode verwendet wird, es entsteht eine Menge Code-Redundanz, was äußerst unangenehm ist. Um dieses Problem zu lösen, greift dieser Artikel die Idee auf, die 1. KartenmethodeDie grundlegende Methode zur Statusextraktion in Vuex kann auf folgende Arten verwendet werden: berechnet(){ zählen(){ gib dies zurück.$store.count } } Gleichzeitig bemerkte var mapState = normalizeNamespace(Funktion (Namespace, Zustände) { // Definieren Sie ein zu speicherndes Objekt und rufen Sie das angegebene Attribut ab. var res = {}; normalizeMap(Zustände).forEach(Funktion (Ref) { var Schlüssel = Ref.Schlüssel; var val = ref.val; // Definiere eine Methode, um das angegebene Attribut im angegebenen Objekt abzurufen res[key] = function mappedState () { var Zustand = dieser.$store.zustand; var getters = dies.$store.getters; // Suche das angegebene Store-Modulobjekt entsprechend dem Namespace if (namespace) { var module = getModuleByNamespace(this.$store, 'mapState', namespace); wenn (!Modul) { zurückkehren } Zustand = Modul.Kontext.Zustand; Getter = Modul.Kontext.Getter; } // Die Eigenschaften des Store-Moduls abrufen, indem der Namespace angegeben wird return typeof val === 'function' val.call(dieser, Status, Getter) : Zustand[Wert] }; }); // Funktionsobjekt zurückgeben return res }); 2. AnwendungDieser Idee folgend kann die Art und Weise der Erfassung von Feldern in einem komplexen Objekt optimiert werden. Die Factory-Funktion ist wie folgt definiert exportiere const mapTargetValue = (nameSpace, keyList = [])=>{ const Ergebnis = {} // Hinweis: Verwenden Sie keine Pfeilfunktionen für die zurückgegebene Methode, sonst erhalten Sie diese nicht // Zwei Formen von keyList sind hier kompatibel, siehe die Verwendungsform der Attributumbenennung in mapState if(Array.isArray(keyList)){ keyList.forEach( Schlüssel => Ergebnis[Schlüssel] = Funktion(){ // Hier nehmen wir an, dass das Namespace-Objekt direkt hiervon abgerufen werden kann // Natürlich hängt die Komplexität zum Abrufen des angegebenen Objekts von Ihrer Codelogik ab return this[nameSpace][key] || 0 }) }sonst wenn(Typ der Schlüsselliste === 'Objekt' && Schlüsselliste){ für (let key in keyList) { Ergebnis[Schlüsselliste[Schlüssel]] = Funktion(){ returniere dies[Namespace][Schlüssel] || 0} } } Ergebnis zurückgeben } Die Verwendung dieser Methode ist genau dieselbe wie bei berechnet: { ...mapZielwert("Zielobjekt", ["Anzahl1", "Anzahl2"]), ...mapZielwert("Zielobjekt", {Anzahl1: "Anzahl3",Anzahl2: "Anzahl4"}), } Dies ist das Ende dieses Artikels über die Anwendung von MapState-Ideen in Vuex. Weitere relevante Vuex-MapState-Inhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Beispiel für HTML-Abschirmung des Rechtsklickmenüs und der Linksklick-Eingabefunktion
>>: Lösen Sie das Problem der Angabe der UDP-Portnummer im Docker
Öffnen Sie den Editor für geplante Aufgaben. Cent...
Inhaltsverzeichnis 1. Commonjs-Exporte und erford...
Das „.zip“-Format wird zum Komprimieren von Datei...
Das Grundprinzip aller Animationen besteht darin,...
MySQL-Sicherung Kaltes Backup:停止服務進行備份,即停止數據庫的寫入H...
Sie können das Attribut in HTML5 verwenden <inp...
Inhaltsverzeichnis 1. Problemhintergrund 2. Welch...
Zwei kleine Probleme, die mich aber lange Zeit ges...
Die ersten Computer konnten nur ASCII-Zeichen ver...
JSON (JavaScript Object Notation, JS Object Notat...
Erste Abfragetabellenstruktur (sys_users): WÄHLEN...
【Inhalt】: 1. Verwenden Sie den Verlaufsstil des H...
Inhaltsverzeichnis Überblick Ist die Erweiterung ...
Ich habe heute mit der Arbeit an meinem Abschluss...
Inhaltsverzeichnis Vorwort Umgebungsvorbereitung ...