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
Das Core Asset Management Project erfordert, dass...
Vorwort Die Standarddatenbankdatei der MySQL-Date...
1. Verwenden Sie Docker-Images, um alle Image-Dat...
Inhaltsverzeichnis Benutzerdefinierte Vite-Plugin...
Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....
Hier stellen wir nur die relativ einfache Install...
Vorwort Wir alle wissen, dass unter Linux „alles ...
Es ist sehr einfach, eine Scala-Umgebung in Linux...
Laderegeln der Require-Methode Laden aus dem Cach...
1. Einleitung Ich habe vor Kurzem an einem Projek...
Mysql mehrere unabhängige Tabellen Abfragedaten u...
Deinstallieren Bestätigen Sie zunächst mit dem fo...
Inhaltsverzeichnis Vorwort Projektdesign hinteres...
In diesem Artikel wird der spezifische Code des j...
wie folgt: -m, --memory Speicherlimit, das Format...