关于vue3中watchEffect与watch的疑问

关于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

回到顶部