Ü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
1. Hilfe-Befehl 1. Aktuelle Docker-Version anzeig...
Beim Hochladen auf einigen Websites wird nach dem...
1. Wodurch wird die Geschwindigkeit der Datenbank...
Hier verwende ich Samba (Filesharing-Dienst) v4.9...
Letztes Mal haben wir über einige SQL-Abfrageopti...
Konfigurieren Sie die Webseitenkomprimierung, um ...
Virtuelle Linux-Maschine: VMware + Ubuntu 16.04.4...
In diesem Artikel wird der spezifische Code für d...
Dataframe ist eine neue API, die in Spark 1.3.0 e...
Dieser Artikel beschreibt die Installation des Sy...
Die Tabellenstruktur ist wie folgt: Ich würde var...
Wie der Titel schon sagt: Die Höhe ist bekannt, d...
BMP ist ein von Hardwaregeräten unabhängiges und ...
Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...
Inhaltsverzeichnis Was ist ein Skelettbildschirm?...