1. 程式人生 > 實用技巧 >vue生命週期學習

vue生命週期學習

vue例項有一個完整的生命週期,也就是從開始建立、初始化資料、編譯模板、掛載Dom、渲染—>更新—>渲染、銷燬等一系列過程,我們稱這是Vue的生命週期。

每一個元件或者例項都會經歷一個完整的生命週期,總共分為三個階段:初始化、執行中、銷燬。

下圖為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空殼,這裡也可以善後