Vue Grundlagen Listener Detaillierte Erklärung

Vue Grundlagen Listener Detaillierte Erklärung

Was ist ein Listener in Vue?

  • Während der Entwicklung haben wir Daten im von Daten zurückgegebenen Objekt definiert, und diese Daten können über Interpolationssyntax und andere Methoden an die Vorlage gebunden werden.
  • Wenn sich die Daten ändern, werden die in der Vorlage gebundenen Daten automatisch aktualisiert, um die neuesten Daten anzuzeigen. Diese Änderung wird jedoch automatisch durch den Datenwert in der Vorlage überwacht.
  • In einigen Fällen möchten wir die Änderungen bestimmter Daten in der Codelogik überwachen. Dann müssen wir den Listener Watch verwenden.

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: watch

Typ: { [key: string]: string | Function | Object | Array}

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

Zusammenfassen

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 Watch-Listener-Beispiels in vue3.0
  • So verwenden Sie Watch-Listener in Vue2 und Vue3
  • Grundlegende Anwendungsbeispiele für Listener in Vue
  • Zusammenfassung der Verwendung von berechneten Vue-Eigenschaften und -Listenern
  • Lösen Sie das Problem von undefiniert, wenn Sie dies in Vue Listener Watch aufrufen
  • Vue-Lernhinweise: Berechnungseigenschaften und Listener-Nutzung
  • Detaillierte Erläuterung des Vue 2.0-Listener-Watch-Attributcodes

<<:  Zwei Methoden zum Deaktivieren von Formularsteuerelementen in HTML: schreibgeschützt und deaktiviert

>>:  So verwenden Sie CSS-Pseudoelemente, um den Stil mehrerer aufeinanderfolgender Elemente zu steuern

Artikel empfehlen

Lösung für MySQL-Replikationsfehler aufgrund voller Festplatte

Inhaltsverzeichnis Fallbeispiel Lösung des Proble...

Einführung und Zusammenfassung der MySQL 8.0-Fensterfunktionen

Vorwort Vor MySQL 8.0 war es ziemlich mühsam, Dat...

Einführung in das Fokuselement document.activeELEment in JavaScript

Inhaltsverzeichnis 1. Der Fokus liegt standardmäß...

So ändern Sie das MySQL-Passwort auf dem XAMPP-Server (mit Bildern)

Heute habe ich bei der Arbeit an PHP herausgefund...

Zusammenfassung der praktischen Methoden von CSS3 (empfohlen)

1. Abgerundeter Rand: CSS- CodeInhalt in die Zwis...

Containerisierungstransformation für Docker-Großprojekte

Virtualisierung und Containerisierung sind zwei u...

js, css, html bestimmen die verschiedenen Versionen des Browsers

Verwenden Sie reguläre Ausdrücke, um die IE-Browse...

Fehler mit ungerader Breite und Höhe in IE6

Wie in der Abbildung gezeigt: Aber bei der Anzeig...

Implementierungsschritte der MySQL-Master-Slave-Replikation

Inhaltsverzeichnis MySQL Master-Slave-Replikation...

Detaillierte Erklärung zur Verwendung von Titel-Tags und Absatz-Tags in XHTML

XHTML-Überschriftenübersicht Wenn wir Word-Dokume...

border-radius-Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...