每個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...