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