
vue里的生命周期是什么?
vue實例從創(chuàng)建到銷毀的過程稱之為vue的生命周期
vue的生命周期各階段都做了什么?
beforeCreate 實例創(chuàng)建前:這個階段實例的data、methods是讀不到的
created 實例創(chuàng)建后:這個階段已經(jīng)完成了數(shù)據(jù)觀測(data observer),屬性和方法的運算, watch/event 事件回調(diào)。mount掛載階段還沒開始,$el 屬性目前不可見,數(shù)據(jù)并沒有在DOM元素上進(jìn)行渲染
beforeMount:在掛載開始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用。
mounted:el選項的DOM節(jié)點 被新創(chuàng)建的 vm.$el 替換,并掛載到實例上去之后調(diào)用此生命周期函數(shù)。此時實例的數(shù)據(jù)在DOM節(jié)點上進(jìn)行渲染
beforeUpdate:數(shù)據(jù)更新時調(diào)用,但不進(jìn)行DOM重新渲染,在數(shù)據(jù)更新時DOM沒渲染前可以在這個生命函數(shù)里進(jìn)行狀態(tài)處理
updated:這個狀態(tài)下數(shù)據(jù)更新并且DOM重新渲染,當(dāng)這個生命周期函數(shù)被調(diào)用時,組件 DOM 已經(jīng)更新,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。當(dāng)實例每次進(jìn)行數(shù)據(jù)更新時updated都會執(zhí)行
beforeDestory:實例銷毀之前調(diào)用。
destroyed:Vue 實例銷毀后調(diào)用。調(diào)用后,Vue 實例指示的所有東西都會解綁定,所有的事件監(jiān)聽器會被移除,所有的子實例也會被銷毀。
vue生命周期在真實場景下的業(yè)務(wù)應(yīng)用
created:進(jìn)行ajax請求異步數(shù)據(jù)的獲取、初始化數(shù)據(jù)
mounted:掛載元素內(nèi)dom節(jié)點的獲取
nextTick:針對單一事件更新數(shù)據(jù)后立即操作dom
updated:任何數(shù)據(jù)的更新,如果要做統(tǒng)一的業(yè)務(wù)邏輯處理
watch:監(jiān)聽具體數(shù)據(jù)變化,并做相應(yīng)的處理