色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue watch函數參數

林玟書2年前9瀏覽0評論

Vue.js的watch函數是用來監控vue實例中data中定義的響應式數據的。

export default {
data() {
return {
value: '初始值'
}
},
watch: {
value(newValue, oldValue) {
console.log(`新值: ${newValue},舊值: ${oldValue}`);
}
}
};

在上面的代碼中,我們定義了一個Vue組件,在組件內部定義了一個data數據value。在watch函數中,我們監聽了value數據的變化。當value的值發生變化時,watch函數就會被調用,并且會傳入參數newValue和oldValue,分別代表數據變化之后的值和變化之前的值。

除了以上提到的兩個參數外,watch方法還可以接受一個可選的選項對象,如下:

export default {
data() {
return {
value: '初始值'
}
},
watch: {
value: {
handler(newValue, oldValue) {
console.log(`新值: ${newValue},舊值: ${oldValue}`);
},
immediate: true, // 立即執行handler函數
deep: true // 深度watch,監聽子屬性的變化
}
}
};

上面的代碼中,我們給watch函數傳入了一個選項對象,其中handler是必須的,和之前一樣,代表數據變化時的回調函數。除此之外,我們還傳入了兩個可選參數:immediate和deep。

當我們設置immediate為true時,Vue會在組件創建之后立即執行handler函數,一般用于在頁面加載時需要對數據進行一次處理。

當我們設置deep為true時,watch會對數據進行深度監聽,當內部屬性發生變化時,也會觸發handler函數。

除了上述的參數之外,我們還可以使用watch函數的返回值,對監控進行更細粒度的控制:

export default {
data() {
return {
value: '初始值',
deepData: {
name: '張三'
}
}
},
watch: {
value: function(newValue) {
console.log(`新值: ${newValue}`);
return '監控成功';
},
deepData: {
handler(newValue, oldValue) {
console.log(`新值: ${JSON.stringify(newValue)},舊值: ${JSON.stringify(oldValue)}`);
},
immediate: true,
deep: true
}
}
};

上面的代碼中,我們對value數據進行了監控,并在handler函數中返回了一個字符串“監控成功”。在實際的組件中,我們可以根據handler函數的返回值來做一些邏輯判斷。

通過上面的介紹,我們可以看出,Vue的watch函數非常強大,并且可以通過參數的不同來做到細粒度的控制。在實際開發中,我們可以根據自己的業務需求來靈活使用watch函數。