Detaillierte Erläuterung des Grafikbeispiels für Vue-Überwachungsattribute

Detaillierte Erläuterung des Grafikbeispiels für Vue-Überwachungsattribute

Was ist die Listener-Eigenschaft?

🥰Das sogenannte Monitoring dient dazu, den Status oder die Eigenschaftsänderungen von integrierten Objekten zu überwachen und darauf zu reagieren. Durch das Überwachen von Eigenschaften können Sie Änderungen in anderen Daten überwachen.

Was ist der Unterschied zwischen Abhöreigenschaften und Berechnungseigenschaften?

Berechnete Eigenschaften werden zwischengespeichert und die Ergebnisse werden neu berechnet und das DOM wird aktualisiert, nachdem sich der abhängige Wert geändert hat.

Die Eigenschaft überwacht den Eigenschaftswert und wenn sich der definierte Wert ändert, wird die entsprechende Funktion ausgeführt.

Der Hauptunterschied in der Verwendung:

Berechnete Eigenschaften können keine asynchronen Aufgaben ausführen. Berechnete Eigenschaften werden im Allgemeinen nicht zum Anfordern von Servern oder zum Ausführen asynchroner Aufgaben verwendet, da dies lange dauern kann und unsere berechneten Eigenschaften in Echtzeit aktualisiert werden müssen. Daher kann diese asynchrone Aufgabe mithilfe der Listening-Eigenschaft ausgeführt werden.

Mit einem Wort: Was die Berechnung leisten kann, kann die Uhr leisten, und was die Berechnung nicht leisten kann, kann die Uhr auch leisten

Verwendung von Monitoring-Eigenschaften

Verwenden Sie das Konfigurationselement „watch“ und schreiben Sie die zu überwachende Eigenschaft in das Konfigurationselement. Jede Änderung des Eigenschaftswerts löst den Rückruf der Handlerfunktion aus. Sie können auch Änderungen an berechneten Eigenschaften überwachen.

Beispiel:

Änderungen im Eingabefeld überwachen

Code

<Vorlage>
<div Klasse="Haupt">
    Ich: <el-input v-model="name" placeholder="Bitte geben Sie Ihren Namen ein"></el-input>
    Freund 1<el-input v-model="friends.friend_1" placeholder="Bitte geben Sie Ihren Namen ein"></el-input>
    Freund 2<el-input v-model="friends.friend_2" placeholder="Bitte geben Sie Ihren Namen ein"></el-input>
</div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten(){
    zurückkehren {
      Name: „Romantischer Coder“,
      Freunde: {Freund_1:'Freund der anderen', Freund_2:'Freund der anderen'}
    }
  },
  betrachten:{
    Name:{
      handler(newValue,oldValue){ //newValue neuer Wert, oldValue Wert vor der Änderung console.log(newValue,oldValue)
        this.friends.friend_1='Wang Wu'
      }
    },
    //Überwachen Sie die Änderung eines bestimmten Attributs in der mehrstufigen Struktur „friends.friend_1“:{
      handler(neuerWert,alterWert){
        console.log(neuerWert,alterWert)
      }
    },
    'Freunde.Freund_2':{
      handler(neuerWert,alterWert){
        console.log(neuerWert,alterWert)
      }
    },
  }
};
</Skript>

Umfassende Überwachung

Wenn unser Objekt eine mehrschichtige Struktur hat, müssen wir viele Eigenschaften des Objekts überwachen und vermeiden, jede Eigenschaft einzeln zu schreiben. Zu diesem Zeitpunkt wird eine gründliche Überwachung verwendet.

Setzen Sie in der Überwachungskonfiguration im Überwachungseigenschaftsobjekt „deep“ auf „true“, um Werteänderungen innerhalb mehrstufiger Objekte oder Arrays zu überwachen.

 betrachten:{
    //Überwachen Sie die Änderungen aller Attribute in der mehrstufigen Struktur friends:{
      handler(neuerWert,alterWert){
        console.log(neuerWert,alterWert,"aa")
      },
      deep:true, //tiefes Monitoring aktivieren}
  }

Hinweis: Hier liegt ein Problem vor. Werden die neuen und alten Werte bei einer gründlichen Überwachung gleich sein?

Grund:

Offizielle Erklärung:

Beim Mutieren (nicht Ersetzen) eines Objekts oder Arrays ist der alte Wert mit dem neuen Wert identisch, da ihre Referenzen auf dasselbe Objekt/Array verweisen. Vue behält keine Kopie des Wertes vor der Mutation

Dies führt zu einer Änderung des Zeigers. In meinem Artikel „Wissen Sie, wie man JS tief kopiert?“ habe ich über Datenspeicherung gesprochen.

Jetzt anrufen

Gleich wie der Speicherort der tiefen Konfiguration.

Immediate Auf true setzen, um den aktuellen Handler-Callback sofort auszulösen

  betrachten:{
    Name:{
      handler(newValue,oldValue){ //newValue neuer Wert, oldValue Wert vor der Änderung console.log(newValue,oldValue)
        this.friends.friend_1='Wang Wu'
      },
      sofort: wahr
    },
  }

Es wird einmal ausgeführt, wenn die Seite geladen wird, daher sind die alten Daten undefiniert

Abschließende Gedanken

Die Überwachungs- und Abhöreigenschaft kann normalerweise verwendet werden, um Daten dauerhaft zu speichern, Ereignisse zu versenden und synchron/asynchron auszuführen, das Format zu überprüfen usw.

Dies ist das Ende dieses Artikels über Vue-Listening-Eigenschaften. Weitere relevante Vue-Listening-Eigenschaften finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue2 überwacht Attributänderungen und beobachtet Beispielcode
  • Detaillierte Erläuterung der Verwendung von Vue2.0-Überwachungsattributen und der Verwendung berechneter Attribute
  • Verwenden von Vue.js zum Überwachen von Attributänderungen
  • Detaillierte Erklärung der Überwachungseigenschaften von Vue

<<:  Erste Schritte Tutorial für Anfänger ④: So binden Sie Unterverzeichnisse

>>:  Mehrere Techniken zum Abspielen von Sounds mit CSS

Artikel empfehlen

Mybatis-Implementierungsmethode für Fuzzy-Abfragen

Mybatis-Implementierungsmethode für Fuzzy-Abfrage...

Definieren Sie Ihre eigene Ajax-Funktion mit JavaScript

Da die von nativen JS initiierten Netzwerkanforde...

Nginx-Anti-Crawler-Strategie, um UA am Crawlen von Websites zu hindern

Anti-Crawler-Richtliniendatei hinzugefügt: vim /u...

Klassischer MySQL-High-Level-/Befehlszeilenvorgang (schnell) (empfohlen)

Da ich lernen muss, wie man Server und Datenbanke...

Lösung für die Nichterreichbarkeit des Tencent Cloud Server Tomcat-Ports

Ich habe vor Kurzem einen Server mit Tencent Clou...

Detailliertes Tutorial zum Konfigurieren der lokalen Yum-Quelle in CentOS8

Die Centos8-Distribution wird über die BaseOS- un...

So stellen Sie Ihre erste Anwendung mit Docker bereit

Im vorherigen Artikel haben Sie Docker Desktop in...

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...

JavaScript fügt Prototyp-Methodenimplementierung für integrierte Objekte hinzu

Die Reihenfolge, in der Objekte Methoden aufrufen...

So teilen und führen Sie mehrere Werte in einem einzigen Feld in MySQL zusammen

Mehrere Werte kombiniert anzeigen Nun haben wir d...

Vergessen Sie nicht, den HTML-Tag zu schließen

Das Erstellen von Webseiten, die Webstandards ents...

Erläuterung der Methode zum Schreiben von SQL-Anweisungen zum Einfügen

Methode 1: INSERT INTO t1(Feld1,Feld2) VALUE(v001...

19 MySQL-Optimierungsmethoden im Datenbankmanagement

Nach der MySQL-Datenbankoptimierung kann nicht nu...