Vue的雙向數據綁定實現原理解析
這篇文章主要介紹了Vue的雙向數據綁定實現原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一、概述
vuejs是采取數據劫持結合發(fā)布者-訂閱者模式的方式實現model-->view的數據綁定,通過Object.defineProperty()來劫持各個屬性的setter,getter,在數據變動時發(fā)布消息給訂閱者,觸發(fā)相應的數據回調。
至于view-model的綁定是對表單添加了change(input)的事件
二、思路
1、實現一個數據監(jiān)聽器Observer,能夠對數據對象的所有屬性進行監(jiān)聽,如果有變動可拿到最新值并通知訂閱者
2、實現一個指令解析器Compile,對每個元素節(jié)點的指令進行掃描和解析,根據指令模板替換數據,以及綁定相應的更新函數
3、實現一個watcher,作為連接observer和compile 的橋梁,能夠訂閱并收到每個屬性變動的通知,執(zhí)行指令綁定的相應回調函數,從而更新視圖
4、mvvm入口函數,整合以上三者
上述流程如圖所示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用vuex的時候,出現this.$store為undefined問題
這篇文章主要介紹了使用vuex的時候,出現this.$store為undefined問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Vuejs第一篇之入門教程詳解(單向綁定、雙向綁定、列表渲染、響應函數)
組件(Component)是 Vue.js 最強大的功能之一。接下來給大家介紹vuejs單向綁定、雙向綁定、列表渲染、響應函數的相關知識,非常不錯,感興趣的朋友一起看看吧2016-09-09