new Vue()html
建立實例node
↓react
初始化事件和生命週期算法
↓app
beforeCreatedom
↓spa
初始化injection和reactivityhtm
↓生命週期
created事件
↓
有沒有「el」選項,沒有等待vm.$mount(el)調用,有則往下
↓
有沒有template選項?有的話把template編譯成render function,沒有的話把外部el掛載點的html看成模板
↓
beforeMount
↓
執行render function,#el的內容掛載到dom中
↓
mounted
當data發生改變時,先觸發beforeUpdate再從新渲染虛擬 dom,並經過 diff 算法對比 vnode 節點差別更新真實,最後觸發updated
組件銷燬的時候(能夠經過調用app.$destroy()模擬),先觸發beforeDestroy,銷燬數據監聽,子組件和解除事件監聽,最後觸發Destroyed(實例銷燬後雖然 dom 和屬性方法都還存在,但改變他們都將再也不生效)
renderError rander方法異常的時候會觸發(開發環境)
errorCaptured render方法異常的時候會觸發(能夠向上冒泡,生產環境也試用)