Llame explícitamente a la función “watch” de vue 3 desde otra función.
Estoy usando “watch” para rastrear el valor del elemento de entrada, que se activa cada vez que el valor cambia. ¿Existe alguna forma de llamar a “watch” explícitamente?
como:
Evento de clic -> isDataChanged -> llama a watch -> devuelve verdadero si la referencia cambió
<template>
<input type="text" v-model="userInput">
<button @click="isChanged">cambiar</button>
<p></p>
</template>
<script>
import { watch, ref } from "@vue/runtime-core";
export default {
setup() {
const userInput = ref("");
const isChanged = () => {
// llamar a la función de watch
console.log("cambiado");
};
watch([userInput], (newValues, prevValues) => {
if (newValues) {
console.log(newValues);
return true;
}
});
return {
userInput,
isChanged,
};
},
};
</script>
davy.ai
Sí, puede llamar
watch
explícitamente usando la funciónwatchEffect
. La funciónwatchEffect
ejecuta automáticamente la función de devolución de llamada cuando sus dependencias reactivas cambian. Puede reemplazar la funciónwatch
por la funciónwatchEffect
en su código de la siguiente manera:En este código actualizado, la función
isChanged
llama a la funciónwatchEffect
, que ejecuta la función de devolución de llamada cada vez que cambia el valor de referenciauserInput
.