1、vue生命周期和生命周期鈎子函數:
vue 的生命周期是:
vue 實例從創建到銷毀,也就是從開始創建
、初始化數據
、編譯模板
、掛載Dom→渲染
、更新→渲染
、卸載
等一系列過程。
在這個過程中也會運行
一些叫做生命周期鈎子的函數
,這給了用戶
在不同階段添加自己的代碼
的機會。
問題二:vue生命周期鈎子函數有哪些?
生命周期鈎子函數(11個) | 類型 | 詳細 |
---|---|---|
beforeCreate | Function | 在實例初始化之后 ,數據觀測 (data observer) 和 event/watcher 事件配置之前被調用。 |
created | Function | 在實例創建完成后 被立即調用。在這一步,實例已完成以下的配置:數據觀測 (data observer) , 屬性和方法的運算 ,watch/event 事件回調 。然而,掛載階段還沒開始,$el 屬性目前不可見。 |
beforeMount | Function | 在掛載開始之前 被調用:相關的 render 函數首次被調用。 |
mounted | Function | el 被新創建的 vm.$el 替換,並掛載到實例上去之后 調用該鈎子。如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$el 也在文檔內。 |
beforeUpdate | Function | 數據更新時調用 ,發生在虛擬 DOM 打補丁之前。這里適合在更新之前訪問現有的 DOM,比如手動移除已添加的事件監聽器。該鈎子在服務器端渲染期間不被調用,因為只有初次渲染會在服務端進行。 |
updated | Function | 由於數據更改導致的虛擬 DOM 重新渲染和打補丁 ,在這之后 會調用 該鈎子。 |
activated | Function | keep-alive 組件激活時調用 。該鈎子在服務器端渲染期間不被調用。 |
deactivated | Function | keep-alive 組件停用時調用 。該鈎子在服務器端渲染期間不被調用。 |
beforeDestroy | Function | 實例銷毀之前調用。在這一步,實例仍然完全可用。該鈎子在服務器端渲染期間不被調用。 |
destroyed | Function | Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。該鈎子在服務器端渲染期間不被調用。 |
errorCaptured(2.5.0+ 新增) | (err: Error, vm: Component, info: string) => ?boolean | 當捕獲一個來自子孫組件的錯誤時被調用。此鈎子會收到三個參數:錯誤對象、發生錯誤的組件實例以及一個包含錯誤來源信息的字符串。此鈎子可以返回 false 以阻止該錯誤繼續向上傳播。 |
注意:
1、mounted
、updated
不會承諾所有的子組件也都一起被掛載。如果你希望等到整個視圖
都渲染完畢
,可以用vm.$nextTick
替換掉mounted
、updated
:
updated: function () { this.$nextTick(function () { // Code that will run only after the // entire view has been re-rendered }) }
2、http請求建議在 created
生命周期內發出
vue生命周期圖示: