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文檔。