vue有11個(gè)階段的生命周期,Vue實(shí)例從創(chuàng)建到銷毀的過(guò)程,就是生命周期。也就是從開(kāi)始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載 Dom→渲染、更新→渲染、卸載等一系列過(guò)程,我們稱這是Vue的生命周期。
1、beforeCreate
在實(shí)例初始化之后,數(shù)據(jù)觀測(cè)(data observer)和event/watcher事件配置之前被調(diào)用
2、created
在實(shí)例創(chuàng)建完成后被立即調(diào)用。在這一步,實(shí)例已完成以下的配置:數(shù)據(jù)觀測(cè) (data observer)屬性和方法的運(yùn)算,watch/event 事件回調(diào)。然而,掛載階段還沒(méi)開(kāi)始,$el屬性目前不可見(jiàn)
3、beforeMount
在掛載開(kāi)始之前被調(diào)用:相關(guān)的render函數(shù)首次被調(diào)用
4、mounted
el被新創(chuàng)建的vm.$el替換,并掛載到實(shí)例上去之后調(diào)用該鉤子,如果root實(shí)例掛載了一個(gè)文檔內(nèi)元素,當(dāng)mounted被調(diào)用時(shí)vm.$el也在文檔內(nèi)
5、beforeUpdate
數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬 DOM 打補(bǔ)丁之前。這里適合在更新之前訪問(wèn)現(xiàn)有的DOM,比如手動(dòng)移除已添加的事件監(jiān)聽(tīng)器,該鉤子在服務(wù)器端渲染期間不被調(diào)用,因?yàn)橹挥谐醮武秩緯?huì)在服務(wù)端進(jìn)行
6、updated
由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子
7、activated
keep-alive 組件激活時(shí)調(diào)用。該鉤子在服務(wù)器端渲染期間不被調(diào)用
8、deactivated
keep-alive 組件停用時(shí)調(diào)用。該鉤子在服務(wù)器端渲染期間不被調(diào)用
9、beforeDestroy
實(shí)例銷毀之前調(diào)用。在這一步,實(shí)例仍然完全可用。該鉤子在服務(wù)器端渲染期間不被調(diào)用
10、destroyed(銷毀后)
Vue 實(shí)例銷毀后調(diào)用。調(diào)用后,Vue 實(shí)例指示的所有東西都會(huì)解綁定,所有的事件監(jiān)聽(tīng)器會(huì)被移除,所有的子實(shí)例也會(huì)被銷毀。該鉤子在服務(wù)器端渲染期間不被調(diào)用
11、errorCaptured(2.5.0+ 新增)
當(dāng)捕獲一個(gè)來(lái)自子孫組件的錯(cuò)誤時(shí)被調(diào)用。此鉤子會(huì)收到三個(gè)參數(shù):錯(cuò)誤對(duì)象、發(fā)生錯(cuò)誤的組件實(shí)例以及一個(gè)包含錯(cuò)誤來(lái)源信息的字符串,此鉤子可以返回false以阻止該錯(cuò)誤繼續(xù)向上傳播