Detaillierte Erklärung der grundlegenden Verwendung des VUE Watch Listener

Detaillierte Erklärung der grundlegenden Verwendung des VUE Watch Listener

Listener werden im Allgemeinen verwendet, um Datenänderungen zu überwachen, und werden standardmäßig ausgeführt, wenn sich die Daten ändern.

Der Name der überwachten Daten wird hier als Funktionsname eingetragen. Diese Funktion hat zwei Parameter, einer ist der neue Wert und der andere der alte Wert.

In Vue wird watch verwendet, um auf Datenänderungen zu reagieren. Es gibt ungefähr drei Möglichkeiten, watch zu verwenden.

1. Der folgende Code ist eine einfache Verwendung von watch

<div id="app">
    <input type="text" v-model="Vorname" />
</div>
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <Skript>
var vm = neuer Vue({
    el:"#app",
    Daten:{
        Vorname:"张"
    },
    betrachten:{         
        Vorname: (neuerWert, alterWert) {
//Vorname ist der Name der Daten, die Sie überwachen möchten. Verwenden Sie den Funktionsnamen, den Sie überwachen möchten, z. B. die Überwachung des Vornamens des V-Modells                    
//newVal: gibt den Wert nach der Änderung an, also den ersten Parameter, Positionen nicht vertauschen //oldVal: gibt den Wert vor der Änderung an,
            console.log({newVal,oldVal}); // {newVal: "Nein", oldVal: "Nein"}
        }
        //Schreiben Sie direkt eine Überwachungsfunktion und führen Sie die Funktion jedes Mal aus, wenn sich der Wert „cityName“ ändert.
        //Sie können den Methodennamen auch im String-Format direkt nach den überwachten Daten hinzufügen: firstName: 'nameChange'
    },
    Methoden:{
        Namensänderung(){
         }
    }
})
 vm.firstName = "陈"; //Ändern Sie den überwachten Wert</script>

2. Sofortige Überwachung

Bei der grundlegenden Verwendung von „watch“ gibt es eine Funktion: Wenn der Wert zum ersten Mal gebunden wird, wird die Abhörfunktion nicht ausgeführt, sondern nur, wenn sich der Wert ändert. Wenn wir die Funktion ausführen müssen, wenn der Wert anfänglich gebunden ist, müssen wir das unmittelbare Attribut verwenden.

betrachten:
  Vorname: {
    handler(neuerName, alterName) {
      dieser.vollständigerName = neuerName + ' ' + dieser.nachname;
    },
    { sofort: wahr }
  }
}

Die überwachten Daten werden in Objektform geschrieben, einschließlich der Handlermethode und des unmittelbaren Werts. Die Funktion, die wir oben im einfachen Schreiben geschrieben haben, schreibt tatsächlich diese Handlermethode, die standardmäßig weggelassen wird.

3. Handler-Methode

<div id="app">
    <div>
        <p>Nummer: {{ myNumber }}</p>
        <p>Nummer: <input type="text" v-model.number="myNumber"></p>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<Skript>
neuer Vue({
    el: '#app',
    Daten: {
        meineNummer: 'Dawei'
    },
    betrachten:
        meineNummer: {
            handler(neuerWert, alterWert) {
                console.log('neuerWert', neuerWert);
                console.log('alterWert', alterWert);
            },
            //Wenn „immediate“ wahr ist, wird die Rückruffunktion sofort ausgelöst; wenn es falsch ist, wird der Rückruf nicht sofort ausgeführt, genau wie im obigen Beispiel.
            sofort: wahr
          }
      }
 })
</Skript>
//Die Handler-Methode ist die spezifische Methode, die Sie in Ihrer Uhr ausführen müssen

4. tiefes Attribut

Wie überwachen wir darin Objekte oder Eigenschaften? Dann führen wir das Deep-Attribut ein. Ihre Rolle ist der Schlüssel zur Lösung dieses Problems.

 <div id="Wurzel">
    <p>Objekt: {{Objekt}}</p>
    <p>Objekt.a: <Eingabetyp="text" v-Modell="Objekt.a"></p>
</div> 
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <Skript>
    neuer Vue({
        el: "#Wurzel",
        Daten: {
            Objekt: {
                 eine: 123
            }
        },
        betrachten:
            Objekt: {
            handler(neuerName, alterName) {
                console.log(neuerName, alterName);
            },
            sofort: wahr,
            tief:wahr
            }
        } 
})
</Skript>

Wenn der obige Code nicht mit deep:true hinzugefügt wird, wird er nicht in der Konsole ausgeführt. Er wird nur beim ersten Mal ausgeführt und das Ausgabeergebnis ist undefiniert.

Standardmäßig überwacht der Handler nur die Referenzänderungen der Eigenschaft obj. Er überwacht nur, wenn wir obj einen Wert zuweisen.

Zu diesem Zeitpunkt können Sie eine gründliche Beobachtung durchführen. Der Listener durchläuft die Ebene für Ebene und fügt diesen Listener allen Eigenschaften des Objekts hinzu. Dies ist jedoch zu zeitaufwändig.

Zusammenfassen

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

Das könnte Sie auch interessieren:
  • Lösen Sie die Fallstricke beim Aufrufen von Methoden in Vue Watch
  • Zusammenfassung der Vue Watch-Überwachungsmethoden
  • Detaillierte Erläuterung der Änderungen der Überwachungsdaten in Vue und der einzelnen Attribute in der Uhr
  • Auslösen des Timings des Watch-Listeners in Vue (Fallstricke von Watch und Lösungen)

<<:  CSS3 verwendet die Übergangseigenschaft, um Übergangseffekte zu erzielen

>>:  So installieren und speichern Sie die PostgreSQL-Datenbank in Docker

Artikel empfehlen

Stil-Trigger-Effekt des Webseiten-Eingabefelds

<br />Dieses Beispiel untersucht hauptsächli...

Beispielanalyse der MySQL-Benutzerrechteverwaltung

Dieser Artikel beschreibt das Beispiel der MySQL-...

RHEL7.5 MySQL 8.0.11 Installations-Tutorial

Dieser Artikel zeichnet das Installationstutorial...

Einfaches Beispiel für die Leistungsoptimierung von MySQL-SQL-Anweisungen

Einfaches Beispiel für die Leistungsoptimierung v...

Zusammenfassung einiger gängiger Protokolle in MySQL

Vorwort: Im MySQL-System gibt es viele verschiede...

Vue.js-Framework implementiert Warenkorbfunktion

In diesem Artikel wird der spezifische Code des V...

So verwenden Sie Docker-Compose zum Erstellen eines ELK-Clusters

Auf alle Orchestrierungsdateien und Konfiguration...

Verzeichnisberechtigungen beim Erstellen eines Containers mit Docker

Als ich gestern ein Projekt schrieb, musste ich d...

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306. A...

Teilen Sie 101 MySQL-Debugging- und Optimierungstipps

MySQL ist eine leistungsstarke Open-Source-Datenb...

Zusammenfassung häufiger Probleme und Anwendungskenntnisse in MySQL

Vorwort Bei der täglichen Entwicklung oder Wartun...

Detaillierte Erklärung des Mindestbreitenwerts von Inline-Blöcken in CSS

Vorwort Vor kurzem habe ich mir abends etwas Zeit...