vue 源碼分析(1)-init

目錄結(jié)構(gòu):

compiler 模板解析的相關(guān)文件

core 核心代碼

?platforms 平臺(tái)相關(guān)的內(nèi)容

server 服務(wù)端渲染相關(guān)

sfc 對(duì).vue文件解析,分成template,script,styles,customblocks,errors幾部分

shared 共享的工具方法

vm從創(chuàng)建到顯示:

創(chuàng)建vue對(duì)象,判斷是否是通過new關(guān)鍵字添加(core/instance/index)

執(zhí)行初始化方法(core/instance/init)

vm添加了一個(gè)唯一的_uid,然后vm._isVue設(shè)為true,_isComponent是內(nèi)部創(chuàng)建子組件時(shí)才會(huì)添加為true的屬性,內(nèi)部initInternalComponent(vm, options),

else執(zhí)行mergeOptions,該方法用于合并兩個(gè)對(duì)象,resolveConstructorOptions方法在Vue.extend中做了詳細(xì)的解釋,它的作用是合并構(gòu)造器及構(gòu)造器父級(jí)上定義的options,給Vue添加了一些全局的屬性或方法。

vue處理屬性合并方法(core/util/options)

initLifecycle(vm):給對(duì)象添加鉤子函數(shù)

initEvents(vm):初始化時(shí)間屬性

initRender(vm):添加虛擬dom

initInjections(vm)和initProvide(vm):父子屬性注入

initState(vm)初始化狀態(tài)

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 使用Vue在日常開發(fā)中會(huì)頻繁接觸和使用生命周期,在官方文檔中是這么解釋生命周期的: 每個(gè) Vue 實(shí)例在被創(chuàng)...
    心_c2a2閱讀 2,388評(píng)論 1 8
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,666評(píng)論 1 32
  • 回憶 首先,render函數(shù)中手寫h=>h(app),new Vue()實(shí)例初始化init()和原來一樣。$mou...
    LoveBugs_King閱讀 2,413評(píng)論 1 2
  • 下面我就來看看Vue的核心構(gòu)造器以及其實(shí)例的屬性和方法。 Vue構(gòu)造器 從 'src/core/index.js'...
    小A家的銘閱讀 3,132評(píng)論 0 0
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,178評(píng)論 0 29

友情鏈接更多精彩內(nèi)容