1. 程式人生 > >關於Vue實例的生命周期(2)

關於Vue實例的生命周期(2)

temp article 重新 掛載 sql 可用 發生 可能 http

關於Vue實例的生命周期(2)

創建(create)->掛載(mount)->更新(update)->銷毀(destory)

技術分享圖片

鉤子函數觸發事件

beforeCreate

在實例初始化之後,數據觀測(data observer) 和 event/watcher 事件配置之前被調用。

created

實例已經創建完成之後被調用。在這一步,實例已完成以下的配置:數據觀測(data observer),屬性和方法的運算, watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。

beforeMount

在掛載開始之前被調用:相關的 render 函數首次被調用。

mounted

el 被新創建的 vm.$el 替換,並掛載到實例上去之後調用該鉤子。

beforeUpdate

數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。 你可以在這個鉤子中進一步地更改狀態,這不會觸發附加的重渲染過程。

updated

由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之後會調用該鉤子。

當這個鉤子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴於 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態,因為這可能會導致更新無限循環。

該鉤子在服務器端渲染期間不被調用。

beforeDestroy

實例銷毀之前調用。在這一步,實例仍然完全可用。

destroyed

Vue 實例銷毀後調用。調用後,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。 該鉤子在服務器端渲染期間不被調用。

Vue實例和子組件之間的生命周期

在Vue中,由於父元素的template模板嵌套了子元素,因此在編譯模板時,會先進入到父元素的template,然後層層遞歸進行子元素的模板編譯。
在創建時,父子組件的生命周期是:
父組件beforeCreated -> 父組件created -> 父組件beforeMounted -> 子組件beforeCreated -> 子組件created -> 子組件beforeMounted -> 子組件mounted

-> 父組件mounted。
在銷毀時,父子組件的生命周期是:
父組件beforeDestory -> 子組件beforeDestoryed -> 子組件destoryed -> 父組件destoryed

總之記住,父子組件的生命周期遵循:由外到內,再由內到外

關於Vue實例的生命周期(2)