vue原始碼 getter setter 依賴跟蹤

2021-10-11 20:46:39 字數 694 閱讀 8436

依賴跟蹤

類有兩個方法

depend和notify

depend表示當前正在執行的**,收集這種依賴項

notify表示依賴發生改變,任何之前被定義過的表示式,計算,函式都會被通知重新執行,所以我們就需要乙個函式或者一段表示式或者某種演算法讓他們產生關聯,並且可以把這種關係叫做依賴,也可以被認為是訂閱者模式

還有乙個叫函式autorun

接受乙個update函式,函式體中屬於響應區間

建立乙個dep例項

const dep = new dep(

)autorun(()=

>

)// 之後在任何地方呼叫了notify 我們不需要修改autorun或者做其他操作

dep.notify(

)// 每次呼叫dep.notify(

)後autorun這個函式就會被觸發

window.dep = class dep

depend()

}, notify()

}let activeupdate

// 確保內部udate函式執行的時候我們的依賴類可以訪問這個activeupdate

function autorun(update)

}autorun(() => )

Vue原始碼解讀(二) Vue原始碼構建

vue.js 原始碼是基於 rollup 構建的,它的構建相關配置都在 scripts 錄下。通常 個基於 npm 託管的項 都會有 個 package.json 件,它是對項 的描述 件,它的內容實際上是 個標準的 json 物件。我們通常會配置 script 字段作為 npm 的執 指令碼,vu...

Vue原始碼解讀

1 例項的屬性和方法 下圖 2 原型上的屬性和方法 下圖 3 原型鏈 下圖 上圖有誤,後續修正 const vm new vue 之後有 vm.proto vue.prototype vm.proto proto object.prototype vm.proto proto proto null ...

VUE 原始碼導讀

斷斷續續耗費了近乙個月的時間,將vue 2.6版本的原始碼大致看了下。自己的理解,主要分兩個部分,工具方法準備和vue物件。工具準備 var strats var lifecycle hooks beforecreate created beforemount mounted beforeupdat...