2021-10-11 前端達人
首先我們?yōu)槊總€vue屬性用Object.defineProperty()實現(xiàn)數(shù)據(jù)劫持,為每個屬性分配一個訂閱者集合的管理數(shù)組dep;然后在編譯的時候在該屬性的數(shù)組dep中添加訂閱者,v-model會添加一個訂閱者,{{}}也會,v-bind也會,只要用到該屬性的指令理論上都會,接著為input會添加監(jiān)聽事件,修改值就會為該屬性賦值,觸發(fā)該屬性的set方法,在set方法內通知訂閱者數(shù)組dep,訂閱者數(shù)組循環(huán)調用各訂閱者的update方法更新視圖。
一小段手寫實現(xiàn)代碼
僅供參考
1
藍藍設計( cqzjtgb.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 、平面設計服務