生命週期的鉤子函數,就是vue實例在和一定的時間點去執行的函數
生命週期總共有11個函數:
其中這八個是比較常見的:beforeCreate()、created()、beforeMount()、Mounted()、beforeDestroy()、destroyed()、beforeUpdate()、updated() ;
還有三個是 activated()、deactivated()、 errorCaptured()
new vue | 創建vue實例 |
init events & lifecycle | 初始化事件和生命週期 |
beforeCreate | 組件剛被創建,組建屬性計算之前,如data屬性等 執行的鉤子函數 |
init injections & reactivity | 通過依賴注入導入依賴項 |
created | 組件實例創建完成,屬性已綁定,此時DOM還未生成 執行的鉤子函數 |
el屬性 | 檢查vue配置,即new Vue{}裏面的el項是否存在,有就繼續檢查template項。沒有則等到手動綁定調用vm.$mount() |
template | 檢查配置中的template項,如果沒有template進行填充被綁定區域,則被綁定區域的el對象的outerHTML(即整個#app DOM對象,包括<div id=”app” >和</div>標籤)都作爲被填充對象替換掉填充區域 |
beforeMount | 模板編譯、掛載之前執行的鉤子函數 |
create vm.$el and replace “el” with it | 編譯,並替換了被綁定元素 |
mounted | 編譯、掛載後執行的鉤子函數 |
beforeUpdate | 組件更新之前執行的鉤子函數 |
updated | 組件更新之後執行的鉤子函數 |
beforeDestroy | 當vm.$destroy()被調用 會執行的鉤子函數 |
destroyed | Vue 實例銷燬後調用。調用後,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷燬。 |