vue生命週期學習
阿新 • • 發佈:2020-10-12
vue例項有一個完整的生命週期,也就是從開始建立、初始化資料、編譯模板、掛載Dom、渲染—>更新—>渲染、銷燬等一系列過程,我們稱這是Vue的生命週期。
每一個元件或者例項都會經歷一個完整的生命週期,總共分為三個階段:初始化、執行中、銷燬。
下圖為vue生命週期示意圖:
具體各個生命週期的意義及用法
- beforeCreated
- 這個時候資料還沒有掛載,訪問不到資料和真實的Dom,一般不做操作
- created
- 這個時候可以使用資料及更改資料了,但不會觸發updated函式,不會觸發其他鉤子函式;一般在這做初始化資料的獲取
- 接下來開始找例項或元件對應的模板了,編譯模板為虛擬dom放入到render函式中準備渲染
- beforeMounted
- 虛擬dom已經建立完成,馬上準備渲染了,這裡也可以更改資料,但不會觸發updated函式,
- 在這可以在渲染前最後一次更改資料的機會,不會觸發其他鉤子函式,一般也可以在這做初始化資料的獲取
- 接下來開始render,渲染出真實Dom
- mounted
- 此時,元件已經出現在頁面中了,資料,Dom都已經處理好了,事件也已經掛載好了
- 在這裡就可以操作真實Dom等一些操作
- beforeUpdate
- 重新渲染之前觸發
- 然後vue的虛擬Dom機制會重新構建虛擬Dom與上一次虛擬Dom樹利用diff演算法進行對比之後進行重新渲染
- updated
- 資料已經更新完成,Dom也重新render完成
- beforeDestroy
- 銷燬前執行,一般在這做善後處理:清除計時器,清除非指令繫結的事件等等
- destroyed
- 元件的資料繫結,監聽等等都已經去除掉了,只剩dom空殼,這裡也可以善後