Vue原始碼學習(4) 資料響應系統

2021-09-02 17:31:50 字數 1011 閱讀 6209

**watcher在:vm.$mount(vm.$options.el) 

function definereactive(obj,key,val)

return val;

},set: function (newval)

val = newval;

dep. notify (); //發布改變

}});

}

class dep 

addsub(sub)

removesub (sub)

depend()

}notify ()

}}dep.target = null;

//低配的不能再低配的watcher物件

//(原始碼中是乙個類,這用乙個物件代替)

const watcher = ,

update: function()

}//假裝這個是渲染頁面的

function html ()

definereactive(obj,'html','how are you');//定義響應式的資料

dep.target = watcher;

html();//第一次渲染介面

dep.target = null;

/*瀏覽器測試:

首先,網頁內容為:'how are you'

然後,在控制台輸入:

obj.html = 'i am fine thank you'

網頁內容變為:'i am fine thank you'

*/

vue原始碼學習 響應式資料

vue原始碼學習 初始化data vue原始碼學習 響應式資料 在 vue原始碼學習 初始化data 一文中,知道了在new vue 時做了一系列初始化操作,其中在初始化data資料時,利用observe data,true 方法,對資料屬性進行了觀察。下面來具體看下是如何對data進行的觀察,從而...

學習 vue 原始碼 響應式原理

由於剛開始學習 vue 原始碼,而且水平有限,有理解或表述的不對的地方,還請不吝指教。vue 主要通過 watcher dep 和 observer 三個類來實現響應式檢視。另外還有乙個 scheduler 來進行排程,本次暫時不做討論。watcher 和 dep 是訂閱者和發布者的關係,每個 wa...

Vue響應式原始碼分析

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