資料雙向繫結原理簡單概括的話就是:
view層影響model層是通過對 『keyup』 等事件的監聽。
model層影響view層是通過object.defineproperty( )方法劫持資料並結合發布訂閱者模式的方式來實現資料的雙向繫結。
根據原理圖來介紹整個流程:
1、首先使用object.defineproperty()中的 getter/setter 作為乙個observer(劫持器)去劫持data物件中的所有屬性,在屬性 set 的時候通知dep(訂閱者收集器)去通知相關訂閱者。
2、實現乙個 watcher(訂閱者),watcher 就是收到 dep 資料變化的通知後,會去執行相對應的更新函式來更新檢視,同乙個資料可能在多處被使用,所以訂閱者不止乙個;這也是 dep 存在的意義,對 watcher 集中起來統一管理。
3、dep(訂閱者收集器),裡面存放每個資料對應的所有 watcher,當observer 的 set 方法被觸發時,就呼叫 dep 裡面的的notify(通知)方法,逐條去通知所有的 watcher 。
如果可以的話把整個流程圖畫出來給面試官看,然後順著流程講給他聽就行。但是一定要講到object.defineproperty( )。
vue雙向繫結實現原理
當我們學會使用乙個東西的時候,就開始想要去知道這個東西是怎麼實現的,這個也是我們一直繼續 下去的動力,博主學了vue的時間也比較長了,自己也寫了乙個demo,還在不定時更新,有興趣的小夥伴可以去看看,如果這個專案能讓您有所收穫,那也是博主希望看到的,接下來也是聊聊自己開始學習vue一些實現原理的過程...
Vue 雙向繫結的原理及實現Demo
vue用了一段時間了,一直沒有糾結過它的原理,今天看了一篇很不錯的文章 vue.js雙向繫結的實現原理,跟著敲了一遍,發現其中有意思的地方還是很多的,一些知識我之前都沒有接觸過,這裡要好好整理一下思路。這篇部落格涉及的東西比較多,還需要慢慢整理。目前還未寫完。主要的知識點 1.vue雙向繫結原理 一...
Vue雙向繫結原理及vue cli
vue.js介紹 1.vue.js的mvvm框架 2.什麼是vue.js vue.js是乙個輕量級的mvvm框架 中文官網 3.對比react angular vue.js更輕量級,gzip只有20k vue.js更容易上手,學習曲線平穩 吸取兩家之長,借鑑了angular的指令和react的指令化...