依賴更新分為兩步
修改屬性值
通知之前收集到的依賴,進行更新
dep
主要用來儲存依賴
var
dep=
function()
dep.prototype.
notify
=function()
}
那watcher.update
中到底發生了什麼?可以來具體看一下watcher類的原始碼
function
watcher
(vm, exporfn)
watcher.prototype.
get=
function()
watcher.prototype.
update
=function()
那watcher是什麼時候,傳入這個更新函式的,其實各個型別的watcher都不一樣,以頁面watcher舉例
vue.prototype.
$mount
=function()
);};
Vue 依賴收集 引用資料型別原理分析
如果資料是引用資料型別,需要對資料進行額外的處理,處理分為物件和陣列兩種 每個物件處理之後,會新增乙個 ob 的屬性,ob 下面有乙個dep屬性,dep就是儲存watcher的地方。為什麼引用型別不能使用dep,因為dep只存在於definereactive這個函式中,作為乙個閉包形式的存在,ob ...
Vue 原理分析(一)
1.響應式 vue如何監聽到data的每個屬性變化什麼是響應式?var vm var data var key,value for key in data set function newval key 2 模版引擎 vue的模版如何被解析,指令如何處理1.模版是什麼?2.render函式與虛擬do...
Vue中methods原理分析
methods繫結上下文執行環境是通過bind來進行的。固定了這個this。vue考慮到不是所有的瀏覽器都支援bind。於是也實現了自己的polyfillbind function polyfillbind fn,ctx function nativebind ctx varbind functio...