3 回答

TA貢獻2003條經驗 獲得超2個贊
Observer, Watcher, vm 可謂 Vue 中比較重要的部分,檢測數據變動后視圖更新的重要環節。下面我們來看看 如何實現一個簡單的 $watch 功能,當然Vue 中使用了很多優化手段,在本文中暫不一一討論。
例子:
// 創建 vm
let vm = new Vue({
data: 'a'
})
// 鍵路徑
vm.$watch('a.b.c', function () {
// 做點什么
})
先闡明在這個 demo 以及Vue 中,它們的關系:
vm 調用 $watch 后,首先調用 observe 函數 創建 Observer 實例觀察數據,Observer 又創建 Dep , Dep 用來維護訂閱者。然后創建 Watcher 實例提供 update 函數。一旦數據變動,就層層執行回調函數。

TA貢獻1772條經驗 獲得超6個贊
Observer,Watcher,vm可謂Vue中比較重要的部分,檢測數據變動后視圖更新的重要環節。下面我們來看看如何實現一個簡單的$watch功能,當然Vue中使用了很多優化手段,在本文中暫不一一討論。例子://創建vmletvm=newVue({data:'a'})//鍵路徑vm.$watch('a.b.c',function(){//做點什么})先闡明在這個demo以及Vue中,它們的關系:vm調用$watch后,首先調用observe函數創建Observer實例觀察數據,Observer又創建Dep,Dep用來維護訂閱者。然后創建Watcher實例提供update函數。一旦數據變動,就層層執行回調函數。
添加回答
舉報