Aufgrund von Einschränkungen von JavaScript kann Vue keine Änderungen an den folgenden Arrays erkennen:
var vm = neuer Vue({ Daten: { Elemente: ['a', 'b', 'c'] } }) vm.items[1] = 'x' // reagiert nicht vm.items.length = 2 // reagiert nicht ProblemumgehungÜberwachung manuell hinzufügen // Vue.set Vue.set(vm.items, indexOfItem, neuerWert) vm.$set(vm.items, indexOfItem, neuerWert) Verwenden Sie die Array-Mutationsmethode, da Vue Reaktionsfähigkeit für Array-Mutationsmethoden implementiert // Array.prototype.splice vm.items.splice(indexOfItem, 1, neuerWert) Warum kann ich Änderungen in den beiden Arrays in Vue2.0 nicht überwachen?Die offizielle Dokumentation fasst diese beiden Punkte kurz zusammen: „Aufgrund von JavaScript-Einschränkungen“ sind sie nicht umsetzbar, und Object.defineProperty ist eine Lösung zum Erkennen von Datenänderungen. Bezieht sich diese Einschränkung auf Object.defineProperty? Tatsächlich liegt der Grund nicht in der Sicherheitslücke in Object.defineProperty(), sondern in Leistungsüberlegungen. Die Leistung von Object.defineProperty in einem Array ist dieselbe wie in einem Objekt. Der Index des Arrays kann als Schlüssel im Objekt betrachtet werden.
Daher kann Object.defineProperty Änderungen am Array-Index überwachen, vue2.x hat diese Funktion jedoch aufgegeben. QuellcodeanalyseObject.property kann Operationen erkennen, die Arrays über Indizes ändern, aber Vue implementiert dies nicht. Schauen wir uns dann den Quellcode an: Vue 3.0In Vue 3.0 wird Proxy anstelle von Object.defineProperty() verwendet, um die bestehenden Probleme zu lösen. Oben finden Sie ausführliche Informationen zu den Gründen, warum Array-Änderungen in Vue2 nicht erkannt werden können, sowie zu deren Lösung. Weitere Informationen zu Vue2-Array-Änderungen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Installation und Verwendung von MySQL unter Ubuntu (allgemeine Version)
>>: So erstellen Sie mit virtualenv eine virtuelle Umgebung unter Windows (zwei Möglichkeiten)
Heute habe ich eine Fallstudie zur MySQL IN-Unter...
Inhaltsverzeichnis Globales Objekt Globale Objekt...
Vue verwendet Ref, um Komponenteninstanzen über E...
Aktivieren Sie den Remotezugriff auf MySQL MySQL-...
Einführung: Die Nachteile der Speicherung aller D...
So erstellen Sie eine virtuelle Maschine auf VMwa...
Überblick Der grundlegende Unterschied zwischen a...
Inhaltsverzeichnis Vorwort Installieren Sie vue-i...
1. Download-Adresse: mysql-8.0.17-winx64 Herunter...
Inhaltsverzeichnis Sonderzeichen in URLs Escapeze...
Verwenden von c3p0 Importieren Sie das c3p0jar-Pa...
Erster Blick auf die Wirkung: Vorwort: Auf diese ...
Fehlerszenario Verwenden Sie den MySQL-Befehl in ...
Vorne geschrieben Es gibt zwei Möglichkeiten, MyS...
Das Image kann auf hub.docker.com gespeichert wer...