WeChat-Miniprogramm wx:key Als ich studierte, verstand ich nicht ganz, was los war. Nachdem ich die Informationen online überprüft hatte, habe ich es geklärt:
Ich persönlich habe das Gefühl, dass die offiziellen Beispiele Die offizielle Erklärung lautet wie folgt:
wx:key
Wenn sich die Position der Elemente in der Liste dynamisch ändert oder neue Elemente hinzugefügt werden Wenn Sie möchten, dass die Elemente in der Liste ihre eigenen Eigenschaften und Zustände behalten (z. B. der Eingabeinhalt in , der ausgewählte Zustand von
Der Wert von wx:key wird in zwei Formen bereitgestellt
Zeichenfolge, die eine bestimmte Eigenschaft des Elements im Array der for-Schleife darstellt, den Wert der Die Eigenschaft muss die einzige Zeichenfolge oder Zahl in der Liste sein und kann nicht dynamisch geändert werden.
Das reservierte Schlüsselwort *this stellt das Element selbst in der for-Schleife dar. Diese Darstellung erfordert, dass das Element selbst eine eindeutige Zeichenfolge oder Zahl ist, wie zum Beispiel:
Ausgelöst, wenn die Daten Änderungen Wenn die Rendering-Ebene erneut gerendert wird, werden Komponenten mit Schlüsseln korrigiert und das Framework stellt sicher, dass sie neu angeordnet und nicht neu erstellt werden, um sicherzustellen, dass die Komponenten ihren eigenen Status beibehalten und die Leistung des Listenrenderings verbessern .
Wenn wx:key nicht angegeben wird, wird eine Warnung angezeigt. Wenn Sie eindeutig wissen, dass die Liste statisch ist oder nicht auf ihre Reihenfolge achten müssen, können Sie sie ignorieren.
Beispielcode:
<switch wx:for="{{objectArray}}" wx:key="unique" style="display: block;"> {{item.id}} </switch> <button bindtap="switch"> Switch </button> <button bindtap="addToFront"> Add to the front </button> <switch wx:for="{{numberArray}}" wx:key="*this" style="display: block;"> {{item}} </switch> <button bindtap="addNumberToFront"> Add to the front </button> Page({ data: { objectArray: [ {id: 5, unique: 'unique_5'}, {id: 4, unique: 'unique_4'}, {id: 3, unique: 'unique_3'}, {id: 2, unique: 'unique_2'}, {id: 1, unique: 'unique_1'}, {id: 0, unique: 'unique_0'}, ], numberArray: [1, 2, 3, 4] }, switch: function(e) { const length = this.data.objectArray.length for (let i = 0; i < length; ++i) { const x = Math.floor(Math.random() * length) const y = Math.floor(Math.random() * length) const temp = this.data.objectArray[x] this.data.objectArray[x] = this.data.objectArray[y] this.data.objectArray[y] = temp } this.setData({ objectArray: this.data.objectArray }) }, addToFront: function(e) { const length = this.data.objectArray.length this.data.objectArray = [{id: length, unique: 'unique_' + length}].concat(this.data.objectArray) this.setData({ objectArray: this.data.objectArray }) }, addNumberToFront: function(e){ this.data.numberArray = [ this.data.numberArray.length + 1 ].concat(this.data.numberArray) this.setData({ numberArray: this.data.numberArray }) } })
Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung Website!
Weitere ausführliche Einführungen zum WeChat-Applet wx:key und verwandte Artikel finden Sie auf der chinesischen PHP-Website!