1. 程式人生 > 實用技巧 >Vue原始碼解析筆記一

Vue原始碼解析筆記一

資料驅動

資料驅動檢視簡單來說就是資料變化引起檢視變化,那麼第一步就是先要知道資料什麼時候發生變化,也就是說對資料的變化要進行偵測。

變化偵測

變化偵測就是追蹤狀態,亦或者說是資料的變化,一但發生了變化,就要去更新檢視

變化偵測在angular中通過髒值檢查流程來實現變化偵測,在react中通過對比虛擬Dom來實現變化偵測

Object資料“可觀測”

Object.defineProperty方法使得資料變得“可觀測”

let car = {}
let val = 3000
Object.defineProperty(car, 'price', {
  enumerable: 
true, configurable: true, get(){ console.log('price屬性被讀取了') return val }, set(newVal){ console.log('price屬性被修改了') val = newVal } })

通過Object.defineProperty()方法給Car定義一個price屬性,並把這個屬性讀取喝寫入分別使用get()和set()進行攔截,每當該屬性進行讀取或者寫入操作的時候會觸發get()和set()

依賴收集

視圖裡誰用到了這個資料就更新誰這就是依賴,在getter中收集依賴,在setter中通知依賴更新。