关于vue3中watchEffect与watch的疑问
<template> <input v-model="value" type="text" @input="handleInputChange" />
</template>
setup() { const value = ref('')
watchEffect(async onInvalidate => {
console.log(value.value); // 初始化也会被监听到
onInvalidate(() => {
console.log('?');
});
});
function handleInputChange() {
let stopWatch: WatchStopHandle = () => {};
if (value.value.length > 5) {
stopWatch = watch(value, (val, preVal) => {
console.log(`输入框老值:${val},新值:${preVal}`);
});
} else {
stopWatch();
}
}
return {
value,
handleInputChange
};
}
代码如上所示,为什么在handleInputChange
函数中else
调用会走到watchEffect
中的onInvalidate
,难道一开始stopWatch
不就是一个空函数吗?
回答:
https://vue3js.cn/docs/zh/api...
你把console.log(value.value);
注释掉
以上是 关于vue3中watchEffect与watch的疑问 的全部内容, 来源链接: utcz.com/p/935857.html