vue生命週期

2022-07-25 03:39:07 字數 1548 閱讀 8013

每個vue例項在被建立的時候都要經過一系列的初始化過程,這就是vue的生命週期;

通俗點說的話,就是從開始建立、初始化資料、編譯模板,掛載dom、渲染、更新、解除安裝等的一系列過程。

說到生命週期就不得不提官網的生命週期圖示了 

可以看到,在vue整個生命週期中,會有很多鉤子函式提供給我們,以便我們在不同的週期來進行操作。

名稱

描述

beforecreate

元件的例項被建立

created

例項建立完成,屬性已經繫結,但dom還沒有生成,$el屬性還不存在

beforemount  

模板掛載之前

mounted

模板掛載之後

beforeupdate

元件更新之前

updated

元件更新之後

activated

kee-alive的元件被啟用時

deactivated

keep-alive的元件被移除時

beforedestroy

元件銷毀前呼叫

destroyed

元件銷毀後呼叫

1,beforecreate ——> created之間的鉤子

在這個生命週期之間,進行了vue的初始化,created的時候,data屬性已經進行了資料的繫結,但此時還沒有el選項。

2,created ——> beforemount之間的鉤子

在這期間,會判斷是否有el選項,有的話就繼續執行生命週期,如果沒有就停止生命週期,直到在vue例項上呼叫vm.$amount(el)

這期間,如果有template選項,則將其作為模板編譯成render函式,如果提供了render選項,則忽略template選項,如果沒有template選項和render選項,則以外部html作為模板進行編譯。

這裡可以發現,render選項優先順序 > template選項 > 外部html

3,beforemount -——> mounted之間的鉤子

給例項新增$el選項,並替換掉掛載的dom元素

4,mounted

mounted之前,頁面中的message還以}這種形式存在的,因為此時還沒有掛載到頁面上,還是以虛擬dom的形式存在,在mounted時,進行dom的掛載。

5,beforeupdate和updated鉤子

當vue的data中資料發生變化時會觸發。

6,beforedestroy和destroy鉤子

beforedestroy鉤子函式在例項銷毀之前呼叫,例項在這時候還是可用

destroy時在vue例項銷毀時呼叫。

vue生命週期

beforecreate 元件例項剛剛被建立,屬性都沒有 create 例項已經建立完成,屬性已經繫結 beforemount 模板編譯之前 mounted 模板編譯之後 beforeupdate 元件更新之前 updated 元件更新完畢 beforedestroy 元件銷毀之前 destroye...

vue生命週期

vue把整個生命週期劃分為建立 掛載 更新 銷毀等階段,每個階段都會給一些 鉤子 讓我們來做一些我們想實現的動作。學習例項的生命週期,能幫助我們理解vue例項的運作機制,更好地合理利用各個鉤子來完成我們的業務 我們分別來看看這幾個階段 1.beforecreate 此階段為例項初始化之後,此時的資料...

Vue 生命週期

import vue from vue el root 沒有的話,使用render,繼續沒有,就把el的outerhtml編譯成模板 template temp data beforecreate created el是原來的el beforemount 渲染函式 render h this.tex...