透過MVVM模式實現vue的雙向綁定數據。
首先須要一個監聽器Observer監聽數據(model)的變化,具體實現是利用Observer中Object.definePrototype()函數實現監聽數據。
當數據發生變化就通知訂閱者Watcher通知並執行綁定的更新函數,從而更新視圖。
最後須要一個Compile解析器,解析V-model、V-on等節點,綁定對應的更新函數並初始化這類節點的模板數據。html
MVVM模式概念:MVVM模式就是Model–View–ViewModel模式。它實現了View的變更,自動反映在 ViewModel。相反的,ViewModel的變更也會自動反應在View。ViewModel是做爲Model和View橋樑的存在。vue
具體可參考Vue.js官方文檔中的這一章節:https://cn.vuejs.org/v2/guide...react