let ok = ref(true) watchEffect( onInvalidate => { // 代码一 console.log(‘执行一些代码‘, ok.value)
console.log(‘执行更多的代码‘);
// 代码二
onInvalidate(()=>{ console.log(‘除了在初始运行时不被调用,我总是在【执行一些代码】之前被执行(调用)‘); })
})
1、watchEffect参数的定义, 一层一层的,每一层都是一个函数指针。C/C++
watchEffect(fn1);
fn1(fn2);
fn2(fn3);
onInvalidate 就是 fn2;
2、fn1首次执行时,onInvalidate不会被执行。 watchEffect侦测到变化时,onInvalidate会首先执行,即【代码二】先执行,然后执行【代码一】。
3、更多的参数: watchEffect(fn1, options); 其中 options 是一个 object. 详见vue3文档。
原文:https://www.cnblogs.com/Jiaojiawang/p/vue3watchEffect.html