EinführungWährend des Front-End-Projektentwicklungsprozesses werden die von el-table angezeigten Ergebnisspalten in Form von Komponenten eingeführt. Einige Felder werden mit der Methode :formatter transkodiert, und die Steuerung zum Anzeigen/Ausblenden von Feldern der Ergebnisspalte wird ebenfalls in Form von Komponenten eingeführt. Wenn das Front-End die Eigenschaften der Feldanzeige steuert, wird festgestellt, dass es Probleme mit der Codewertkonvertierung und der Anzeige von Feldinformationen gibt. ProblemanalyseBeim Lesen der Codestruktur stellen wir fest, dass el-table-column durch eine Vorlagenschleife generiert wird. Da die Vorlage ein Vorlagenplatzhalter ist, kann sie uns beim Umschließen von Elementen helfen, aber während der Schleife wird die Vorlage nicht auf der Seite gerendert. Die Rolle des Schlüssels bei der Darstellung von Tabellendaten ist wie folgt:
Gleichzeitig unterstützt das Vorlagentag das :key-Attribut nicht. Hinweis: Das Vorlagentag innerhalb des an die Vue-Instanz gebundenen Elements unterstützt die v-show-Direktive nicht, d. h. v-show="false" funktioniert für das Vorlagentag nicht. Das Vorlagentag unterstützt jetzt jedoch die Anweisungen v-if, v-else-if, v-else und v-for. ProblemumgehungDa das Vorlagen-Tag das Schlüsselattribut nicht unterstützt, können Sie dem el-table-column-Tag das Attribut key="Math.random()" hinzufügen. Dieses Schlüsselattribut ist ein spezielles Attribut von Vue, das hauptsächlich im virtuellen DOM-Algorithmus von Vue verwendet wird, um VNodes beim Vergleich neuer und alter Knoten zu identifizieren und so die Leistung beim Rendern von Seiten zu verbessern. Wenn dieser Schlüssel nicht aktualisiert wird, werden Teile des DOM beim Anzeigen/Ausblenden von Spalten nicht erneut gerendert, was bei Änderungen in der Tabelle zu Verwirrung führen kann. Weiterführende Literatur1. Die Rolle des Schlüssels Wie oben erwähnt, kann der Knoten als Identifikationswert eines DOM-Knotens in Kombination mit dem Diff-Algorithmus wiederverwendet werden. (Knoten mit demselben Schlüssel werden wiederverwendet.) Nur wenn sich der Schlüssel (oder andere Dinge, die dazu führen, dass isSameNode falsch ist) ändert, wird der Knoten neu gerendert. Andernfalls verwendet Vue den vorherigen Knoten erneut und aktualisiert den Knoten, indem es die Eigenschaften des Knotens ändert. Was ist also der Unterschied zwischen der Verwendung von ID und Index als Schlüssel? 2. Der Unterschied zwischen der Verwendung von ID und Index für den Schlüssel Es wird nicht empfohlen, den Index als Schlüssel zu verwenden, da dies dazu führen würde, dass einige Knoten an Ort und Stelle falsch wiederverwendet werden, und zwar wie folgt:
Leistungsverlust Beim Rendern der Liste werden alle Listenknoten (Inhalte) nach dem geänderten Element aktualisiert (entspricht dem nicht funktionierenden Schlüssel). Es ist zu beachten, dass die Aktualisierung aller Listenknoten nach der Elementänderung im Wesentlichen eine Aktualisierung der Knotenattribute darstellt und die Knoten selbst wiederverwendet werden. <!-- Testcode --> <Vorlage> <div> <div v-for="(item, index) in arr" :key="index oder item.id"> {{item.data}} </div> </div> </Vorlage> <Skript> Standard exportieren { Name: "Hallo Welt", Daten(){ zurückkehren { arr: Array.from({Länge: 10000}, (v, i) => {return {id: i, data: i}}) } }, montiert(){ setzeTimeout(()=>{ /* 1. this.shiftArr() // lösche das erste Element oder 2. this.unShiftArr() // füge ein neues Element am Anfang ein */ }, 1000) }, Methoden: { shiftArr(){ dies.arr.shift(); }, unshiftArr(){ dies.arr.unshift({id: -1, data: -1}); } } } </Skript> Das obige Beispiel ist sehr einfach. v-for rendert eine Liste mit einer Länge von 10.000 Zeichen. Nachdem Vue eine Sekunde lang gemountet war, führt es eine Löschung des ersten Elements in der Liste oder eine Einfügung eines neuen Elements in den Listenkopf aus und beachtet den spezifischen Seitenaktualisierungsaufwand der beiden Tastenkombinationen. Der Seiten-Overhead wird mithilfe der Registerkarte „Leistung“ von Chrome gemessen. Löschen Sie das erste Element in der Liste Den Listenanfang zum neuen Element verschieben Ein Fehler ist aufgetreten Einige Knoten werden an der falschen Stelle wiederverwendet. (Zum Beispiel, wenn in einem Listenelement ein Kontrollkästchen verwendet wird) <!-- Testcode --> <Vorlage> <div> <button @click="test">Erstes Element in der Liste löschen</button> <div v-for="(item, index) in arr" :key="index oder item.id"> <Eingabetyp="Kontrollkästchen" /> {{item.data}} </div> </div> </Vorlage> <Skript> Standard exportieren { Name: "Hallo Welt", Daten(){ zurückkehren { arr: Array.from({Länge: 5}, (v, i) => {return {id: i, Daten: i}}) } }, Methoden: { prüfen(){ dies.arr.shift(); } } } </Skript> ZusammenfassenDies ist das Ende dieses Artikels über die Anwendung von Schlüsseln bei der Seitendarstellung in Vue. Weitere relevante Anwendungsinhalte zum Schlüssel für die Seitendarstellung in Vue 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:
|
<<: Zwei Möglichkeiten, das WeChat-Miniprogramm mit Tencent Maps zu verbinden
>>: JavaScript-Quellcode für Elimination
Wird UPDATE gesperrt? Wird die SQL-Anweisung gesp...
Installations- und Konfigurationsmethode für MySQ...
1. Aktivieren Sie Prometheus-Telemetriedaten Stan...
Inhaltsverzeichnis Vorwort 1. Endpunkt 2. Verbind...
Einführung in Jib Jib ist eine von Google entwick...
Der Erste: Verwenden der CSS-Positionseigenschaft...
In diesem Artikel wird die Konsistenzverarbeitung...
Einführung Wenn ich zurückblicke, sagte der Lehre...
Sehen Sie sich die 100 höchsten Punktzahlen der S...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. Id...
Inhaltsverzeichnis 1. Voraussetzungen 1.1 Unterst...
Vorwort Also habe ich diesen Blog geschrieben. Di...
Inhaltsverzeichnis Einführung scrollen Element.sc...
Vorwort Tomcat ist ein hervorragender Java-Contai...
Inhaltsverzeichnis 1. Wo man JavaScript schreibt ...