在實(shí)例化Vue時(shí),需要傳入一個(gè)選項(xiàng)對(duì)象。他可以包含數(shù)據(jù)、模板、掛載元素、方法、生命周期鉤子等選項(xiàng)。
每個(gè)vue實(shí)例在被創(chuàng)建的之前都要經(jīng)過一系列的初始化過程。例如,實(shí)例需要配置數(shù)據(jù)觀測(cè)、編譯模板、掛載實(shí)例到DOM,然后在數(shù)據(jù)變化時(shí)更新DOM。
breforCreate:在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)和事件配置之前調(diào)用
created:實(shí)例已經(jīng)創(chuàng)建完成之后被調(diào)用。在這一步,實(shí)例已經(jīng)完成以下配置:數(shù)據(jù)觀測(cè)、屬性和方法的運(yùn)算。watch/event事件回調(diào)。然而掛載階段還沒開始。
beforeMount : 掛載之前開始被調(diào)用,相關(guān)的render函數(shù)首次被調(diào)用(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
mounted:el被新創(chuàng)建的vm.$el替換,并掛載到實(shí)例上去后調(diào)用該鉤子。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
beforeUpdate:數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬DOM重新渲染和打補(bǔ)丁之前。你可以在這個(gè)鉤子中進(jìn)一步地更改狀態(tài),這不會(huì)觸發(fā)附加的重渲染過程。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
updated: 由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子。當(dāng)這個(gè)鉤子被調(diào)用時(shí),組件 DOM 已經(jīng)更新,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下,你應(yīng)該避免在此期間更改狀態(tài),因?yàn)檫@可能會(huì)導(dǎo)致更新無限循環(huán)。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
activated :keep-alive 組件激活時(shí)調(diào)用。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
deactivated : keep-alive 組件停用時(shí)調(diào)用。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
beforeDestroy:實(shí)例銷毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)
destroyed:Vue 實(shí)例銷毀后調(diào)用。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定,所有的事件監(jiān)聽器會(huì)被移除,所有的子實(shí)例也會(huì)被銷毀。(該鉤子在服務(wù)器端渲染期間不被調(diào)用。)