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

Vue verwendet Openlayers zum Laden von Tiandi Map und Amap

Inhaltsverzeichnis 1. Weltkarte 1. Installieren S...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.6.22

In diesem Tutorial wird der spezifische Code der ...

5 JavaScript-Möglichkeiten zum Abflachen von Arrays

Inhaltsverzeichnis 1. Konzept der Array-Abflachun...

Ein Artikel zum Verständnis der erweiterten Funktionen von K8S

Inhaltsverzeichnis Erweiterte Funktionen des K8S ...

So implementieren Sie das Builder-Muster in Javascript

Überblick Das Builder-Muster ist ein relativ einf...

Docker-Container: benutzerdefinierter Host-Netzwerkzugriffsvorgang

Durch Hinzufügen des Schlüsselworts extra_hosts i...

Ein auf Vue-cli basierender Codesatz unterstützt mehrere Projekte

Inhaltsverzeichnis Anwendungsszenario Ideen Proje...

Änderung der Standardquelldatei sources.list des Ubuntu20.04 LTS-Systems

Wenn Sie den Inhalt der Datei „source.list“ verse...

Detaillierte Erklärung zur Anzeige der aktuellen Anzahl an MySQL-Verbindungen

1. Zeigen Sie die detaillierten Informationen all...

Entwickeln Sie Beispielcode für einen Taschenrechner mit nativem JavaScript

Die Hauptfunktion eines Rechners besteht darin, n...