實現壹個監聽者Oberver來劫持並監聽所有的屬性,壹旦有屬性發生變化就通知訂閱者,實現壹個訂閱者watcher來接受屬性變化的通知並執行相應的方法,從而更新視圖,實現壹個解析器compile,可以掃描和解析每個節點的相關指令,並根據初始化模板數據以及初始化相對應的訂閱者。
因為 view 更新 data 其實可以通過事件監聽即可,比如 input 標簽監聽 'input' 事件就可以實現了。
而數據更新視圖的重點是如何知道數據變了,只要知道數據變了,那麽接下去的事都好處理。如何知道數據變了,就是通過Object.defineProperty( )對屬性設置壹個set函數,當數據改變了就會來觸發這個函數,所以我們只要將壹些需要更新的方法放在這裏面就可以實現data更新view了。