你們好,我是前端鼓勵師maybe,做爲前端,掌握vue框架能夠說是必須滴,那麼vue的雙向數據綁定原理想必是要深刻了解的一個知識點,那麼你瞭解的雙向綁定原理又是怎麼樣的呢?無論怎樣,請給我一首歌的時間,我給你用官方的口吻講解一波雙向綁定的整個過程,剩下的半首歌時間我給你用我本身整理的話講解一波,但願你看完個人文章,對vue的雙向數據綁定原理有跟進一步瞭解和理解!前端
具體步驟vue
第一步:
須要observer的數據對象進行遞歸遍歷,包括子屬性對象的屬性,都加上setter和getter這樣的話,給這個對象的某個值賦值,就會觸發setter,那麼久能監聽到了數據變化jquery
第二步:
compile解析橫板令,將模板中的變量替換成數據.而後初始化渲染頁面視圖,並將每一個令對應的節點綁定更新函數,添加監聽數據的訂閱者,一旦數據有變更,收到通知,更新視圖面試
第三步:
Watcher訂閱名是 observer和 Compile之間通訊的橋樑,主要作的事情是:
1.在自身實例化時往屬性訂倒器(dep)裏面添加本身
2.自身必須有一個 update()方法
3.待屬性變更dep.notice()通知時,能調用自身的update()方法,並觸發Compile中定的回調,則功成身退設計模式
第四步:
MVVM做爲數據綁定的入口,合 observer、 Compile和 Watcher三者,經過 Observer來監聽本身的model數據変化,經過 Compile來解析編譯模板指令,最終利用 Watcher搭起 Observer和 Compile之間的通訊標梁,達到數據變化->視圖更新新:視圖交互變化(Input)->數據mode變動的雙向綁定效果。框架
以上即是比較官方的口吻講解vue的雙向數據綁定原理,那麼接下來,說說我對雙向數據綁定原理的理解,要理解vue的雙向數據綁定原理那就必須先理解MVC與MVVM模式的區別而後再理解vue的單項數據綁定原理,接下來給你們以圖片和文字結合的方式講解下:dom
1.MVC和MVVM的區別:函數
2.vue的單項單項數據綁定原理:學習
3.vue雙向數據綁定原理
vue的雙向數據綁定原理,當頁面有一個input元素咋辦,這時候v-model雙向數據綁定就派上用場了,可是v-model雙向數據綁定原理又是怎樣的呢?請看下圖:設計
通過上面一波騷操做,但願你們能在vue的面試中遇到vue雙向數據綁定原理的問題,可以對答如流,答得儘可能完整一點,若是我還有哪些地方漏了的,請在評論區指出,相互借鑑學習!