欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue子組件$watch

在Vue中,子組件能夠觀察父組件中傳遞進(jìn)來的props的變化,但是孫子組件無法像子組件那樣觀察props的變化。為了解決這一問題,Vue為子組件提供了$watch功能,允許子組件觀察某個(gè)props的變化并執(zhí)行相應(yīng)的操作。

在子組件中使用$watch需要在組件的created生命周期中調(diào)用this.$watch方法。$watch方法中第一個(gè)參數(shù)為觀察的props名稱,第二個(gè)參數(shù)為回調(diào)函數(shù),即當(dāng)props發(fā)生變化時(shí)需要執(zhí)行的操作。注意,$watch只能觀察子組件中的props變化,而無法觀察data的變化。

created() {
this.$watch('propName', (newValue, oldValue) =>{
// 執(zhí)行操作
})
}

在回調(diào)函數(shù)中,可以接收兩個(gè)參數(shù):新值和舊值。新值表示props變化后的值,舊值表示props變化前的值。可以根據(jù)這兩個(gè)值來進(jìn)行一些條件判斷和計(jì)算等操作。

created() {
this.$watch('propName', (newValue, oldValue) =>{
if (newValue >oldValue) {
// 執(zhí)行操作
}
})
}

如果需要監(jiān)視多個(gè)props的變化,可以在$watch方法中傳遞一個(gè)數(shù)組,數(shù)組中包含需要監(jiān)視的props名稱?;卣{(diào)函數(shù)中的第一個(gè)參數(shù)將變?yōu)橐粋€(gè)對(duì)象,包含所有被監(jiān)視props的新值和舊值。

created() {
this.$watch(['prop1', 'prop2'], ({ prop1: newProp1Value, prop2: newProp2Value }, { prop1: oldProp1Value, prop2: oldProp2Value }) =>{
// 執(zhí)行操作
})
}

除了$watch外,Vue還提供了一個(gè)$watchGroup方法,允許同時(shí)監(jiān)視多個(gè)props的變化。$watchGroup方法接收一個(gè)字面量對(duì)象,對(duì)象中的每個(gè)鍵都代表一個(gè)props,每個(gè)值為一個(gè)回調(diào)函數(shù)。回調(diào)函數(shù)中的參數(shù)為被監(jiān)視props的新值和舊值。

created() {
this.$watchGroup({
prop1: (newValue, oldValue) =>{
// 執(zhí)行操作
},
prop2: (newValue, oldValue) =>{
// 執(zhí)行操作
}
})
}

$watch和$watchGroup方法都返回一個(gè)解綁函數(shù),用于取消$watch監(jiān)聽。解綁函數(shù)可以在組件的destroyed生命周期中調(diào)用以避免內(nèi)存泄漏。

created() {
this.unwatch = this.$watch('propName', (newValue, oldValue) =>{
// 執(zhí)行操作
})
},
destroyed() {
this.unwatch()
}