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

CSS3 realisiert die Animation des Shuttle-Sternenhimmels

Ergebnis: html <canvas id="Sternenfeld&qu...

JavaScript zur Implementierung der Schaltfläche „Zurück nach oben“

In diesem Artikel wird der spezifische Code für J...

Implementierung der Fastdfs+Nginx-Clusterkonstruktion

1. Einführung in Fastdfs 1. Was ist Fastdfs? Fast...

Nginx Reverse-Proxy-Konfiguration entfernt Präfix

Wenn Sie nginx als Reverse-Proxy verwenden, könne...

Ausführliche Erklärung des Binlogs in MySQL 8.0

1 Einleitung Das Binärprotokoll zeichnet SQL-Anwe...

Interpretation des CocosCreator-Quellcodes: Engine-Start und Hauptschleife

Inhaltsverzeichnis Vorwort Vorbereitung Gehen! Te...

Eine kurze Diskussion über die Rolle von Vue3 defineComponent

Inhaltsverzeichnis defineComponent-Überladungsfun...

Detaillierte Erklärung der Primärschlüssel und Transaktionen in MySQL

Inhaltsverzeichnis 1. Kommentare zu MySQL-Primärs...

Wie man mit React elegant CSS schreibt

Inhaltsverzeichnis 1. Inline-Stile 2. Importmetho...

Implementierung eines Random Roll Callers basierend auf JavaScript

In diesem Artikel wird der spezifische JavaScript...

Detaillierte Erklärung einiger Einstellungen für Tabellenanpassung und Überlauf

1. Zwei Eigenschaften des Tabellen-Resets: ①borde...

So verwenden Sie Webstorm und Chrome zum Debuggen von Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Erstellen Sie ein n...

Vue realisiert den gesamten Prozess der Slider-Drag-Verifizierungsfunktion

Rendern Definieren Sie das Skelett, schreiben Sie...