1. 程式人生 > 程式設計 >Vue的雙向資料繫結實現原理解析

Vue的雙向資料繫結實現原理解析

這篇文章主要介紹了Vue的雙向資料繫結實現原理解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、概述  

  vuejs是採取資料劫持結合釋出者-訂閱者模式的方式實現model-->view的資料繫結,通過Object.defineProperty()來劫持各個屬性的setter,getter,在資料變動時釋出訊息給訂閱者,觸發相應的資料回撥。

至於view-model的繫結是對錶單添加了change(input)的事件

二、思路

  1、實現一個數據監聽器Observer,能夠對資料物件的所有屬性進行監聽,如果有變動可拿到最新值並通知訂閱者

  2、實現一個指令解析器Compile,對每個元素節點的指令進行掃描和解析,根據指令模板替換資料,以及繫結相應的更新函式

  3、實現一個watcher,作為連線observer和compile 的橋樑,能夠訂閱並收到每個屬性變動的通知,執行指令繫結的相應回撥函式,從而更新檢視

  4、mvvm入口函式,整合以上三者

  上述流程如圖所示:

Vue的雙向資料繫結實現原理解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。