Detaillierte Erklärung der Überwachungseigenschaften von Vue

Detaillierte Erklärung der Überwachungseigenschaften von Vue

Vue-Monitoreigenschaften

Was ist die Listener-Eigenschaft?

Das sogenannte Monitoring dient dazu, den Status oder die Eigenschaftsänderungen von eingebauten Objekten zu überwachen und darauf zu reagieren. Durch das Überwachen von Eigenschaften können Sie Änderungen an 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.

Bildbeschreibung hier einfügen

Beispiel:

Änderungen im Eingabefeld überwachen

Bildbeschreibung hier einfügen

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}
  }

Bildbeschreibung hier einfügen

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

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 wird auf true gesetzt, 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 undefined

Bildbeschreibung hier einfügen

Zusammenfassen

Die Watch-Listening-Eigenschaft kann normalerweise für die Datenpersistenz, Ereignisverteilung und synchrone/asynchrone Ausführung, Formatüberprüfung usw. verwendet werden.

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Grafikbeispiels für Vue-Überwachungsattribute
  • 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

<<:  Drei Möglichkeiten, in CSS3 eine Hintergrundunschärfe zu erzielen (Zusammenfassung)

>>:  Beispiele für die Verwendung einer Link-Aktualisierungsseite und einer JS-Aktualisierungsseite

Artikel empfehlen

Dateiupload über HTML5 auf Mobilgeräten

Meistens werden Plug-Ins zum Hochladen von Dateie...

Einführung in das MySQL Connection Control Plugin

Inhaltsverzeichnis 1. Einführung in das Verbindun...

Vue implementiert einfache Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Beispielanalyse für MySQL-Transaktionen, Isolationsebenen und Sperrenverwendung

Dieser Artikel beschreibt anhand von Beispielen M...

Vue3-Kompilierungsprozess - Quellcodeanalyse

Vorwort: Vue3 ist schon seit langem verfügbar. Vo...

Beheben Sie den Fehler während der Verbindungsausnahme in Docker

Wenn Sie Docker zum ersten Mal verwenden, werden ...

Detaillierte Erklärung dieser Referenz in React

Inhaltsverzeichnis Ursache: durchlaufen: 1. Konst...

Detaillierte Erklärung des Rewrite-Moduls von Nginx

Das Umschreibmodul ist das Modul ngx_http_rewrite...