Vue3.x watch函數(shù)----偵聽器

watch函數(shù),是用來定義偵聽器的

1.監(jiān)聽ref定義的響應(yīng)式數(shù)據(jù)----基本類型

const count = ref ( 10 )

watch ( count , ( newValue, oldValue ) => {

console.log ( newValue,oldValue )

)

總結(jié):偵聽普通數(shù)據(jù)可以獲取修改前后的值;被偵聽的數(shù)據(jù)必須是響應(yīng)式的。

2.監(jiān)聽reactive定義的響應(yīng)式數(shù)據(jù)

偵聽reactive定義的響應(yīng)式數(shù)據(jù)

reactive定義的響應(yīng)式數(shù)據(jù)

總結(jié):如果偵聽對(duì)象,那么偵聽器的回調(diào)函數(shù)的兩個(gè)參數(shù)是一樣的結(jié)果,表示最新的對(duì)象數(shù)據(jù),此時(shí),也可以直接讀取被偵聽的對(duì)象,那么得到的值也是最新的。

3.監(jiān)聽多個(gè) ref 定義的響應(yīng)式數(shù)據(jù)

通過ref偵聽多個(gè)響應(yīng)式數(shù)據(jù)

總結(jié):可以得到更新前后的值;偵聽的結(jié)果也是數(shù)組,數(shù)據(jù)順序一致。

4.監(jiān)聽reactive定義的響應(yīng)式數(shù)據(jù)的某一個(gè)屬性

reactive定義的某一個(gè)屬性

總結(jié):

如果偵聽對(duì)象中當(dāng)個(gè)屬性,需要使用函數(shù)方式,偵聽更少的數(shù)據(jù)有利于提高性能

5.配置選項(xiàng)用法

watch( ( )=>obj.age , (v1,v2)=>{

console.log( 'sutInfo' ) },

{immediate:true, deep:true}

)

總結(jié):1.immediate:true,表示組件渲染時(shí)立即調(diào)用

? ? ? ? ? 2.deep:true,表示深度監(jiān)聽對(duì)象里面的子屬性

? ? ? ? ? ? ? (被偵聽的內(nèi)容需要是函數(shù)的寫法)


用reactive定義的響應(yīng)式數(shù)據(jù),如果整個(gè)都需要被偵聽,那么就直接將這個(gè)對(duì)象變量當(dāng)做第一個(gè)參數(shù)使用;如果是偵聽某一個(gè) ,那么就需要用函數(shù)的方式當(dāng)做第一個(gè)參數(shù),例如:()=>obj.age ; ----復(fù)雜數(shù)據(jù)類型

用ref定義的響應(yīng)式數(shù)據(jù),偵聽單個(gè)數(shù)據(jù);偵聽多個(gè)數(shù)據(jù),用數(shù)組包裹起來當(dāng)做第一個(gè)參數(shù),新值舊值也都返回?cái)?shù)組,并且數(shù)組中數(shù)值也是一一對(duì)應(yīng)的----簡單數(shù)據(jù)類型

配置選項(xiàng)用法,用于reactive對(duì)象包對(duì)象的情況。因?yàn)榇藭r(shí)需要深度偵聽,需要通過deep選項(xiàng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容