之前我們講過vue3的監(jiān)聽,我們的寫法是如下所示,包括從vue2寫過來的,都是需要監(jiān)聽的數(shù)據(jù),舊數(shù)據(jù),新數(shù)據(jù),除了寫法上vue3和vue2難到?jīng)]有任何改變嗎?如果當(dāng)這幾個函數(shù)的回調(diào)函數(shù)一樣的時候,我們難道要寫好多個嗎?
watch(監(jiān)聽的數(shù)據(jù),(newvalue,oldvalue)=》{ console.log(當(dāng)監(jiān)聽數(shù)據(jù)改變時觸發(fā)的函數(shù)內(nèi)容) })
當(dāng)然我們vue3這里也可以通過數(shù)組包裹的形式同時監(jiān)聽幾個數(shù)據(jù)。
當(dāng)需要監(jiān)聽的數(shù)據(jù)是一個數(shù)組的時候,newValue返回的數(shù)據(jù)也是一個數(shù)組,可以使用結(jié)構(gòu)賦值把需要的數(shù)據(jù)拿出來。
但這里我們要說的是vue3的另一種監(jiān)聽watchEffect 。
和watch不同,他不需要規(guī)定監(jiān)聽的數(shù)據(jù),他會隱式的監(jiān)聽所有的響應(yīng)式數(shù)據(jù),只需要一個回調(diào)函數(shù)。就像在其他地方使用響應(yīng)式數(shù)據(jù)一樣,如果是reactive定義的數(shù)據(jù)需要加上.value。
還有一個小技巧,vscode中已經(jīng)更新了自動添加.value的功能。vscode的設(shè)置中搜索Auto Insert打開即可自動補(bǔ)全。
上一篇: VUE中重要的定時器寫法--輪詢
下一篇: 沒有了