VUE 監視屬性——watch
阿新 • • 發佈:2021-11-27
watch: {
isHot: {
immediate: true, // 初始化時讓 handler 呼叫一下
// handler 什麼時候呼叫?當 isHot 發生改變時
handler(newValue, oldValue) {
console.log('isHot被修改了', newValue, oldValue)
}
}
}
- 簡寫形式
watch: {
isHot(newValue, oldVaule) {
console.log('isHot被修改了', newValue, oldValue);
}
}
- 深度監聽
deep: true
(1)Vue 中的 watch 預設不監測物件內部值的改變(一層)。
(2)配置 deep: true 可以監測物件內部值改變(多層)。
備註:
(1)Vue 自身可以監測物件內部值的改變,但 Vue 提供的 watch 預設不可以!
(2)使用 watch 根據資料的具體結構,決定是否採用深度監聽。
總結:
1. 當被監聽的屬性變化時,回撥函式自動呼叫,進行相關操作
2. 監聽的屬性必須存在( data 或 computed 中存在),才能進行監聽
3. 監聽的兩種寫法:
(1)new Vue時傳入 watch 配置
(2)通過 vm.$watch 監聽,vm.$watch('xxx') 要加引號,否則會讀取變數是否存在