Heim >Web-Frontend >View.js >So stellen Sie automatisch Anfragen aus, wenn sich Daten in Vue3 ändern
Eine Möglichkeit besteht darin, die in Vue 3 bereitgestellte watchEffect-Funktion zu verwenden. Diese Funktion empfängt einen Parameter, der eine Funktion ist. Diese Funktion enthält die Variablen, auf die reagiert werden muss. Wenn sich diese Variablen ändern, löst die watchEffect-Funktion diese Funktion automatisch aus. Zum Beispiel:
import { watchEffect } from 'vue' watchEffect(() => { // 需要响应的变量 console.log('变量发生变化了') })
Im obigen Beispiel verwenden wir die Funktion watchEffect, um eine Variable zu beobachten. Wenn sich die Variable ändert, gibt die Konsole „Die Variable hat sich geändert“ aus.
Als nächstes können wir eine Ajax-Anfrage in der watchEffect-Funktion senden:
import { watchEffect } from 'vue' import axios from 'axios' watchEffect(() => { // 需要响应的变量 axios.get('/api/data') .then(response => { // 处理响应的数据 }) })
Wenn sich im obigen Beispiel die responsive Variable ändert, wird der Code in der watchEffect-Funktion geändert automatisch ausgeführt, wobei Ajax-Anfragen gesendet und die Antwortdaten verarbeitet werden.
Zusätzlich zur watchEffect-Funktion bietet Vue 3 auch die Watch-Funktion. Die Überwachungsfunktion empfängt zwei Parameter. Der erste Parameter ist die Variable, die überwacht werden muss, und der zweite Parameter ist die Rückruffunktion, die ausgeführt werden muss, wenn sich die Variable ändert. Zum Beispiel:
import { watch } from 'vue' import axios from 'axios' watch( // 监听的变量 () => data.value, // 变量发生变化时执行的回调函数 (newValue, oldValue) => { axios.get('/api/data') .then(response => { // 处理响应的数据 }) } )
Wenn sich im obigen Beispiel die Variable data.value ändert, führt die Überwachungsfunktion automatisch die Rückruffunktion aus, sendet die Ajax-Anfrage und verarbeitet die Antwortdaten.
Das obige ist der detaillierte Inhalt vonSo stellen Sie automatisch Anfragen aus, wenn sich Daten in Vue3 ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!