教你從原始碼看Vue的響應式原理

2021-09-20 10:22:37 字數 650 閱讀 1901

前段時間把vue原始碼抽時間看了一遍,耐心點看再結合網上各種分析文章還是比較容易看明白的,沒太大問題,唯一的問題就是

看完即忘

當然了,也不是說啥都不記得了,大概流程以及架構這些東西還是能留下個印象的,對於vue的構建算是有了個整體認知,只是具體到**級別的細節很難記住多少,不過也情有可原嘛,又不是背**誰能記住那麼多邏輯繞來繞去的東西?

想來想去,響應式這個東西幾年前就已經被列入《三年前端,五年面試》考試大綱,那就它吧

首先找入口,vue原始碼的src目錄下,存放的就是未打包前的**,這個目錄下又分出幾個目錄:

compiler跟模板編譯相關,將模板編譯成語法樹,再將ast編譯成瀏覽器可識別的js**,用於生成dom

core就是vue的核心**了

Vue響應式原始碼分析

初始化資料initdata時呼叫obsreve函式。observe函式主要做了3件事 如果不是物件則啥都不做退出。物件已經是響應式的了,有 ob 了,直接返回這個依賴收集器。物件還不是響應式的,執行new observer observer中主要做了3件事 新建乙個new dep 依賴收集器,定義到...

Vue 響應式原理 原始碼

整個函式結束,相當於初始化所有屬性和vue內建事件 如 emit 並且使所有屬性變為響應式。初始化所有option api 對其中的使用者自定義資料data 進行 observe 此函式用來新建乙個類observer的例項,類observer的constructor中用walk 函式進行遍歷每個屬性...

Vue原始碼剖析(二)響應式

主要是雙向繫結和依賴收集 object.defineproperty,vue.js就是基於它實現 響應式系統 的。我們知道要實現雙向繫結需要給物件通過object.defineproperty新增getter和setter方法。那我們是怎麼來設定vue的呢,我們可以實現乙個observer函式,我們...