Heim > Web-Frontend > View.js > Hauptteil

Detaillierte Erläuterung der Verwendung von watch in vue.js

青灯夜游
Freigeben: 2020-10-21 17:57:22
nach vorne
5252 Leute haben es durchsucht

Detaillierte Erläuterung der Verwendung von watch in vue.js

Verwenden Sie in Vue Watch, um auf Datenänderungen zu reagieren. Es gibt ungefähr drei Möglichkeiten, watch zu verwenden. Der folgende Code ist eine einfache Verwendung von watch:

<input type="text" v-model="cityName"/>
Nach dem Login kopieren
new Vue({
  el: &#39;#root&#39;,
  data: {
    cityName: &#39;shanghai&#39;
  },
  watch: {
    cityName(newName, oldName) {
      // ...
    }
  } 
})
Nach dem Login kopieren

Schreiben Sie direkt eine Listening-Verarbeitungsfunktion und führen Sie die Funktion jedes Mal aus, wenn sich der cityName-Wert ändert. Sie können den Methodennamen auch in Form einer Zeichenfolge direkt nach den überwachten Daten hinzufügen:

watch: {
    cityName: &#39;nameChange&#39;
    }
 }
Nach dem Login kopieren

immediate und handler

Bei dieser Verwendung von watch gibt es eine Funktion, d. h. wenn der Wert gebunden ist Beim ersten Mal wird sie nicht ausgeführt. Die Abhörfunktion wird nur ausgeführt, wenn sich der Wert ändert. Wenn wir die Funktion ausführen müssen, wenn der Wert anfänglich gebunden ist, müssen wir das Attribut „immediate“ verwenden.

Wenn beispielsweise eine übergeordnete Komponente dynamisch einen Wert an eine untergeordnete Komponente überträgt und die Requisiten der untergeordneten Komponente zuerst den Standardwert von der übergeordneten Komponente erhalten, muss sie auch die Funktion ausführen. Zu diesem Zeitpunkt muss „Sofort“ festgelegt werden zu wahr.

new Vue({
  el: &#39;#root&#39;,
  data: {
    cityName: &#39;&#39;
  },
  watch: {
    cityName: {
      handler(newName, oldName) {
        // ...
      },
      immediate: true
    }
  } 
})
Nach dem Login kopieren

Die überwachten Daten werden später in Objektform geschrieben, einschließlich der Handler-Methode und der Funktion, die wir zuvor geschrieben haben.

Immediate gibt an, ob der Handler ausgeführt werden soll, wenn er zum ersten Mal in der Überwachung gebunden ist. und der Wert ist wahr. Dies bedeutet, dass die Handler-Methode sofort ausgeführt wird, wenn sie in watch deklariert wird. Wenn der Wert falsch ist, wird sie ausgeführt, wenn sich die Daten ändern, genau wie bei normaler Verwendung von watch.

deep

Wenn Sie Änderungen an einem Objekt überwachen müssen, können die Änderungen in den internen Eigenschaften des Objekts nicht mit der normalen Überwachungsmethode überwacht werden. Zu diesem Zeitpunkt benötigen Sie die tiefes Attribut, um den Objektmonitor zu vertiefen.

<input type="text" v-model="cityName.name"/>
Nach dem Login kopieren
new Vue({
  el: &#39;#root&#39;,
  data: {
    cityName: {id: 1, name: &#39;shanghai&#39;}
  },
  watch: {
    cityName: {
      handler(newName, oldName) {
      // ...
    },
    deep: true,
    immediate: true
    }
  } 
})
Nach dem Login kopieren

Setzen Sie tief: true, um Änderungen in cityName.name zu überwachen. Zu diesem Zeitpunkt wird dieser Listener zu allen Eigenschaften von cityName hinzugefügt. Wenn das Objekt viele Eigenschaften enthält, wird der Handler für jede Änderung des Eigenschaftswerts ausgeführt . Wenn Sie nur einen Attributwert im Objekt überwachen müssen, können Sie die folgenden Optimierungen vornehmen:

Verwenden Sie die Form einer Zeichenfolge, um das Objektattribut zu überwachen:

watch: {
    &#39;cityName.name&#39;: {
      handler(newName, oldName) {
      // ...
      },
      deep: true,
      immediate: true
    }
  }
Nach dem Login kopieren

Auf diese Weise wird nur ein bestimmtes Attribut des Objekts überwacht mit einem Zuhörer hinzugefügt.

Änderungen in Arrays (eindimensional, mehrdimensional) erfordern keine umfassende Überwachung, Änderungen in den Eigenschaften von Objekten in Objektarrays erfordern jedoch eine umfassende Überwachung. 🔜 Besuchen Sie:

Einführung in die Programmierung
! !


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von watch in vue.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!