- entry-runtime-with-compiler.js (打包入口文件)
- 擴(kuò)展了 $mount 方法
const mount = Vue.property.$mount
- 擴(kuò)展了 $mount 方法
- web/runtime/index.js
- 聲明補(bǔ)丁函數(shù)patch (執(zhí)行diff)
- 聲明 $mount 方法 (得到要掛載的宿主元素==>執(zhí)行掛載 mountComponent )
- src/core/index.js
- 初始化全局API (initGlobalAPI(Vue))
聲明了 use,set,delete,component,nextTick 等方法
- 初始化全局API (initGlobalAPI(Vue))
- src/core/instance/index.js
- Vue 構(gòu)造函數(shù)
- 執(zhí)行 _init() 方法
- 實(shí)例方法的初始化
initMixin(Vue) // 混入 _init() '(向下關(guān)聯(lián)init.js) stateMixin(Vue) // $set/$delete/$watch eventsMixin(Vue) // $emit/$on/$off/$onec lifecycleMixin(Vue) // $_update / $forceUpdate renderMixin(Vue) // $nextTick / _render
- Vue 構(gòu)造函數(shù)
- src/core/instance/init.js
initLifecycle(vm) // $root / $parent / $children / $refs initEvent(vm) //event 在父組件創(chuàng)建,在子組件監(jiān)聽(tīng) initRender(vm) // slots/$createElement callHook => breforeCreate // 組件創(chuàng)建之前的鉤子 initInjections(vm) // 先注入祖輩傳遞的數(shù)據(jù)(此時(shí)數(shù)據(jù)為空) initState(vm) //組件數(shù)據(jù)初始化 (包括:data/props/methods/computed/watch等) (向下關(guān)聯(lián) state.js) initProvide(vm) //后提取數(shù)據(jù) callHook => created - src/core/instance/state.js
initState() //進(jìn)行了數(shù)據(jù)響應(yīng)式處理
Vue源碼解析-Vue初始化流程
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。