Vue的雙向資料繫結實現原理解析
阿新 • • 發佈:2020-02-18
這篇文章主要介紹了Vue的雙向資料繫結實現原理解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一、概述
vuejs是採取資料劫持結合釋出者-訂閱者模式的方式實現model-->view的資料繫結,通過Object.defineProperty()來劫持各個屬性的setter,getter,在資料變動時釋出訊息給訂閱者,觸發相應的資料回撥。
至於view-model的繫結是對錶單添加了change(input)的事件
二、思路
1、實現一個數據監聽器Observer,能夠對資料物件的所有屬性進行監聽,如果有變動可拿到最新值並通知訂閱者
2、實現一個指令解析器Compile,對每個元素節點的指令進行掃描和解析,根據指令模板替換資料,以及繫結相應的更新函式
3、實現一個watcher,作為連線observer和compile 的橋樑,能夠訂閱並收到每個屬性變動的通知,執行指令繫結的相應回撥函式,從而更新檢視
4、mvvm入口函式,整合以上三者
上述流程如圖所示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。