Unterstützt Vue die Reaktivität bei Map- und Set-Datentypen?

8

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?

    
Bryce 10.05.2016, 05:42
quelle

1 Antwort

5

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 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, dass Set ist   aktualisiert:

%Vor%      

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.

    
Hill 01.08.2017, 15:00
quelle

Tags und Links