ÜberblickVerwenden Sie hauptsächlich Object.defineProperty, um eine Datenbindung ähnlich wie vue zu implementieren. erster Schrittconst Daten = { Name: "tom", Alter: 14 } Objekt.defineProperty(Daten, "Name", { erhalten(){ return "Name wurde gelesen" }, setze(Wert){ console.log('Mir wurde zugewiesen',val) } }) //Geben Sie diesen Code in die Browserkonsole ein, um den Effekt anzuzeigen console.log(data.name) Die Ausgabe „data.name“ lautet nicht „tom“, aber „name“ wird gelesen, weil „defineProperty“ das Namensfeld der Daten überwacht und entführt und den Wert ändert, den das Namensfeld hätte zurückgeben sollen. Schritt 2const _data = { ...data } für (lass i in Daten) { Objekt.defineProperty(Daten, i, { erhalten(){ return _data[i]+"geändert durch js" }, setze(Wert){ _Daten[i] = Wert; } }) } Warum werden separate _Daten benötigt?Antwort: Das Datenfeld wird überwacht und das Rückgabeattribut des Felds wird geändert. Die daraus resultierende Auswirkung besteht darin, dass der Browser jedes Mal, wenn das überwachte Feld in Daten abgerufen wird, den von get zurückgegebenen Wert aufruft. Wenn Sie in get direkt return data[i] zurückgeben, ruft der Browser kontinuierlich die get-Methode auf und gerät so in eine Endlosschleife. Fügen Sie den Daten etwas mehr Daten hinzuconst Daten = { Name: "tom", Alter: 14, Freund: "name1": "Zhang San", "name2": "Li Si", "name3": "Wang Wu", "name4": "Zhao Liu" }, } Formatierung des Anfangswertesconst createNewWatch = (Wert, Pfad, übergeordneter Schlüssel, Ereignis) => { //Wenn der Wert nicht vom Objekttyp ist, geben Sie den Wert direkt zurück, if(typeof val != 'object') return val; //Wenn es hingegen vom Typ „Objekt“ ist, rufen Sie WatchObject auf, um die untergeordneten Elemente zu durchlaufen und zu überwachen. //WatchObject wird im folgenden Code erstellt: return WatchObject(val,path.concat(parentKey), event) } Markendesignunternehmen aus Guangzhou https://www.houdianzi.com Objekt formatieren und Wert überwachenconst WatchObject = (Daten, Pfad, Ereignis) => { Funktion WatchObject(){ für (var Schlüssel in Daten) { //Rufen Sie die zuvor erstellte Funktion auf, um den Wert zu formatieren Daten[Schlüssel] = createNewWatch(Daten[Schlüssel], Pfad, Schlüssel, Ereignis) //Erstellen Sie einen Listener für den Datenschlüssel defineProperty(this, key, data[key], path.concat(key), event) } } gibt neues WatchObject zurück() } Zum Abschluss führen Sie den Code aus und schon ist eine einfache Datenüberwachung abgeschlossen. const b = WatchObject(Daten,[],{ setze(Pfad,Wert){ console.log(Pfad,Wert) } }) Oben finden Sie Einzelheiten zur Verwendung von JS zur Implementierung einer einfachen Datenüberwachung. Weitere Informationen zur JS-Datenüberwachung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: MySQL-Ansichtsprinzipien und grundlegende Bedienungsbeispiele
>>: So installieren Sie Oracle auf Windows Server 2016
Informationen finden Einige im Internet gefundene...
Datenbereinigung (ETL) Vor dem Ausführen des MapR...
In diesem Tutorial verwenden wir für die Installa...
Inhaltsverzeichnis 1. Einführung in SELinux 2. Gr...
Linux ist derzeit das am weitesten verbreitete Se...
Nehmen Sie nun an, dass Sie dem Formular ein Elem...
Es gibt zwei Dateien a.htm und b.htm. Im selben Ve...
Führen Sie die Anweisung „create table“ in der Da...
1. Was ist ein Index? Ein Index ist eine Datenstr...
Heute möchte ich einen Countdown von Vue und Mome...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Was ist FormData? Eine praktis...
Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...
Inhaltsverzeichnis Vorbereiten Fünf Waffen für … ...
1. Doppelklicken Sie zunächst auf das VMware-Symb...