Was ist ein Listener in Vue?
Offizielle Definition : Vue bietet mit der Überwachungsoption eine allgemeinere Methode, um auf Datenänderungen zu reagieren. Dieser Ansatz ist besonders nützlich, wenn Sie bei Datenänderungen asynchrone oder aufwändige Vorgänge ausführen müssen. Ein Objekt, bei dem die Schlüssel die zu überwachenden reaktiven Eigenschaften sind – die entweder Daten oder berechnete Eigenschaften enthalten – und die Werte die entsprechenden Rückruffunktionen sind. Der Wert kann auch ein Methodenname oder ein Objekt mit zusätzlichen Optionen sein. Die Komponenteninstanz ruft beim Instanziieren $watch() auf. Weitere Informationen zu den Optionen „Deep“, „Immediate“ und „Flush“ finden Sie unter $watch. Verwendung des Listeners Option: Typ: Konfigurationsoptionen für den Watch-Listener: Standardmäßig überwacht watch nur Änderungen an Datenreferenzen und reagiert nicht auf Änderungen an internen Eigenschaften der Daten: Zu diesem Zeitpunkt können wir eine Option „deep“ verwenden, um tiefer zuzuhören. Eine weitere Eigenschaft ist, dass wir hoffen, sie gleich zu Beginn auszuführen: Zu diesem Zeitpunkt verwenden wir die Option „immediate“. Zu diesem Zeitpunkt wird die Abhörfunktion einmal ausgeführt, unabhängig davon, ob sich die Daten später ändern. Inhalt der Daten: Daten() { zurückkehren { Info: Name: "cgj" } } } betrachten: Info: handler(neuerWert, alterWert) { console.log(neuerWert, alterWert) } tief: wahr, sofort: wahr, } } Eine weitere Sache, die in der Vue3-Dokumentation nicht, in der Vue2-Dokumentation jedoch erwähnt wird, sind die Eigenschaften des Listening-Objekts: 'info.name': Funktion(neuerWert, alterWert) { console.log(neuerWert, alterWert) } Eine andere Möglichkeit besteht darin, die $watch-API zu verwenden: Weitere Informationen zu $watch finden Sie in der offiziellen API (weniger gebräuchlich): Beispielmethode | Vue.js const app = erstelleApp({ Daten() { zurückkehren { ein: 1, b: 2, C: { T: 4 }, e: 5, f: 6 } }, betrachten: // Hören Sie auf die Eigenschaft der obersten Ebene a(Wert, alterWert) { console.log(`neu: ${val}, alt: ${oldVal}`) }, // String-Methodenname b: 'someMethod', // Dieser Rückruf wird aufgerufen, wenn sich die Eigenschaft eines überwachten Objekts ändert, unabhängig davon, wie tief es verschachtelt ist c: { handler(val, alterWert) { console.log('c geändert') }, tief: wahr }, // Auf eine einzelne verschachtelte Eigenschaft hören 'c.d': Funktion (Wert, alterWert) { // etwas tun }, // Dieser Rückruf wird sofort aufgerufen, nachdem das Abhören beginnt e: { handler(val, alterWert) { console.log('e geändert') }, sofort: wahr }, // Sie können ein Array von Rückrufen übergeben und diese werden nacheinander aufgerufen f: [ 'Handle1', Funktion handle2(val, alterWert) { console.log('handle2 ausgelöst') }, { Handler: Funktion handle3(val, oldVal) { console.log('handle3 ausgelöst') } /* … */ } ] }, Methoden: { irgendeineMethode() { console.log('b geändert') }, handle1() { console.log('Handle 1 ausgelöst') } } }) const vm = app.mount('#app') vm.a = 3 // => neu: 3, alt: 1 Vue-Hörer-Uhr Ziel: Kann auf Änderungen von Daten/berechneten Eigenschaftswerten hören Grammatik: betrachten: "Der Name der Eigenschaft, die überwacht wird" (newVal, oldVal){ } } Beispielcode: <Vorlage> <div> <Eingabetyp="Text" v-Modell="Name"> </div> </Vorlage> <Skript> Standard exportieren { Daten(){ zurückkehren { Name: "" } }, // Ziel: Auf Änderungen im Namenswert achten/* Grammatik: betrachten: Variablenname(neuerWert, alterWert){ //Der Variablenname wird bei der Wertänderung hier automatisch ausgelöst} } */ betrachten: // newVal: aktueller Wert // oldVal: vorheriger Wert name(newVal, oldVal){ console.log(neuerWert, alterWert); } } } </Skript> <Stil> </Stil> Zusammenfassung : Um auf eine Eigenschaftsänderung zu hören, verwenden Sie die Watch-Methode Vue Listener – genaues Zuhören und sofortige Ausführung Ziel: Kann auf Änderungen von Daten/berechneten Eigenschaftswerten hören Grammatik: betrachten: "Der Name der Eigenschaft, die überwacht wird" (newVal, oldVal){ } } Beispielcode: <Vorlage> <div> <input type="text" v-model="benutzer.name"> <input type="text" v-model="Benutzer.Alter"> </div> </Vorlage> <Skript> Standard exportieren { Daten(){ zurückkehren { Benutzer: { Name: "", Alter: 0 } } }, // Ziel: Abhörendes Objekt/* Grammatik: betrachten: Variablenname(neuerWert, alterWert){ //Der Variablenname wird bei der Wertänderung hier automatisch ausgelöst}, Variablenname: { handler(neuerWert, alterWert){ }, deep: true, // tiefes Zuhören (Wertänderungen in der inneren Ebene des Objekts) immediate: true // Sofort hören (Handler wird einmal ausgeführt, wenn die Webseite geöffnet wird) } } */ betrachten: Benutzer: { handler(neuerWert, alterWert){ //Objekt in userconsole.log(newVal, oldVal); }, tief: wahr, sofort: wahr } } } </Skript> <Stil> </Stil> Zusammenfassung : Sofortiges Zuhören, intensives Zuhören, Auslösen von Handler-festen Methoden ZusammenfassenDieser 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:
|
Inhaltsverzeichnis Fallbeispiel Lösung des Proble...
Vorwort Vor MySQL 8.0 war es ziemlich mühsam, Dat...
Inhaltsverzeichnis 1. Der Fokus liegt standardmäß...
Heute habe ich bei der Arbeit an PHP herausgefund...
Ich entwickle derzeit ein neues App-Projekt. Dies...
1. Abgerundeter Rand: CSS- CodeInhalt in die Zwis...
Virtualisierung und Containerisierung sind zwei u...
Verwenden Sie reguläre Ausdrücke, um die IE-Browse...
Wie in der Abbildung gezeigt: Aber bei der Anzeig...
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...
Inhaltsverzeichnis MySQL Master-Slave-Replikation...
XHTML-Überschriftenübersicht Wenn wir Word-Dokume...
Inhaltsverzeichnis Vorbereitung Installieren Sie ...
1. Transaktionen haben ACID-Eigenschaften Atomari...
border-radius:10px; /* Alle Ecken sind mit einem ...