vue例項的生命週期 鉤子函式

2022-07-19 15:27:27 字數 1486 閱讀 2117

每個 vue 例項在被建立時都要經過一系列的初始化過程——例如,需要設定資料監聽、編譯模板、將例項掛載到 dom 並在資料變化時更新 dom 等。同時在這個過程中也會執行一些叫做生命週期鉤子的函式,這給了使用者在不同階段新增自己的**的機會。

vue有8種生命週期函式:

鉤子函式

觸發的行為 

在此階段可以做的事情

beforecreadted

在例項建立以前呼叫,沒有例項化,資料訪問不到

vue例項的掛載元素$el和資料物件data都為undefined,還未初始化。

加loading事件

created

例項被建立完成後呼叫

vue例項的資料物件data有了,$el還沒有 

結束loading、請求資料為mounted渲染做準備

能拿到資料,能修改資料,

且修改資料不會觸發updated beforeupdate鉤子函式

可以在這個鉤子函式裡發請求,訪問後端介面拿資料

判斷是否存在el,是否存在template,如果二者都有,以template為主優先, 如果沒有template,會選擇el模板。

beforemount

vue例項的$el和data都初始化了,但還是虛擬的dom節點,具體的data.filter還未替換。

可以訪問資料,也可以更改資料

且修改資料不會觸發updated beforeupdate鉤子函式

在beforemount和mounted之間隱藏了乙個render函式,千萬不能寫,會覆蓋系統函式

mounted

vue例項掛載完成,data.filter成功渲染 

配合路由鉤子使用

可以訪問和更改資料,且修改資料會觸發updated beforeupdate鉤子函式

beforeupdate

data更新時觸發 

updated

data更新時觸發 

beforeupdate 、updated 可以監控data裡的所有資料變化

不要在update beforeupdate修改不定資料,否則會引起死迴圈

監聽data裡的所有的資料,非updated莫屬

beforedestroy

元件銷毀時觸發 

可以清理非vue資源,防止記憶體洩露

destroyed 

元件銷毀時觸發,vue例項解除了事件監聽以及和dom的繫結(無響應了),但dom節點依舊存在

元件銷毀時進行提示

注意:destroyed鉤子函式有一點一定要特別注意:在執行destroy方法後,對data的改變不會再觸發週期函式,此時的vue例項已經解除了事件監聽以及和dom的繫結,但是dom結構依然存在。所以對於實時顯示的通知型元件,在他destroyed之前,我們必須手動removechild()刪除該節點;否則,dom節點還是存在,影響瀏覽器效能。

Vue鉤子函式生命週期例項詳解

vue生命週期簡介 vue例項有乙個完整的生命週期,也就是從開始建立 初始化資料 編譯模板 掛載dom 渲染 更新 渲染 解除安裝等一系列過程,我們稱這是vue的生命週期。通俗說就是vue例項從建立到銷毀的過程,就是生命週期。在vue的整個生命週期中,它提供了一系列的事件,可以讓我們在事件觸發時註冊...

vue生命週期,鉤子函式

一 vue生命週期簡介 咱們從上圖可以很明顯的看出現在vue2.0都包括了哪些生命週期的函式了,總結一下,對官方文件的那張圖簡化一下,就得到了這張圖。二 生命週期 對於執行順序和什麼時候執行,看上面圖基本有個了解了。下面我們將結合 去看看鉤子函式的執行。鉤子函式 1.create 和 mounted...

vue 生命週期(鉤子函式)

new vue 例項物件,下一步進入beforcreate 狀態 當使用new vue 建立物件之前,執行的事件 這裡可以做載入動畫 下一步,進入created 然後,他會檢測是否有el屬性,如果有在檢測template屬性型別,是一段渲染的函式還是一段html 然後就進入了beforemount狀...