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ù)

總結(jié):如果偵聽對(duì)象,那么偵聽器的回調(diào)函數(shù)的兩個(gè)參數(shù)是一樣的結(jié)果,表示最新的對(duì)象數(shù)據(jù),此時(shí),也可以直接讀取被偵聽的對(duì)象,那么得到的值也是最新的。
3.監(jiān)聽多個(gè) ref 定義的響應(yīng)式數(shù)據(jù)

總結(jié):可以得到更新前后的值;偵聽的結(jié)果也是數(shù)組,數(shù)據(jù)順序一致。
4.監(jiān)聽reactive定義的響應(yīng)式數(shù)據(jù)的某一個(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)。