vue實例的聲明週期

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方法異常的時候會觸發(能夠向上冒泡,生產環境也試用)

相關文章
相關標籤/搜索