In den Dokumenten für Vue.js wird die intelligente automatische Änderungsverfolgung für einfache Javascript-Objekte genannt:
Wenn Sie ein einfaches JavaScript-Objekt als Datenoption an eine Vue-Instanz übergeben, durchläuft Vue.js alle seine Eigenschaften und konvertiert sie mithilfe von Object.defineProperty in Getter / Setter.
Da die Javascript-Datentypen Map
und Set
für die Verwendung mit den integrierten get
/ set
-Methoden entworfen wurden, kann ich Vue veranlassen, Aufrufe (und damit Änderungen) im internen Status zu verfolgen von Map
s und Set
s?
Vue.js unterstützt keine Reaktivität in den Datentypen Map
und Set
(noch?).
Das Feature-Ticket enthält einige Diskussionen und dies funktioniert (vom Benutzer "inca") :
Sets und Maps können von Vue nicht beobachtet werden. Um diese zu benutzen - entweder in
%Vor%v-for
oder in berechneten Eigenschaften, Methoden, Beobachtern, Vorlagenausdrücke usw. - Sie müssen ein serialisierbares Replikat erstellen von dieser Struktur und setzen Sie es Vue aus. Hier ist ein naives Beispiel, das verwendet einen einfachen Zähler, um Vue Informationen zu geben, dassSet
ist aktualisiert:Dies illustriert eine Art hacky aber 100% Arbeitsmethode für die Herstellung nicht beobachtbare Daten reaktiv. Trotzdem bin ich in realen Fällen gelandet mit serialisierten Versionen von Sets / Maps (z. B. möchten Sie wahrscheinlich Speichern Sie die modifizierten Versionen von Sätzen / Karten im lokalen Speicher und damit serialisieren Sie sie trotzdem, also waren keine künstlichen Zähler / Hacks beteiligt.
Tags und Links vue.js