beforeCreate( 創(chuàng)建前 )
在實例初始化之后,數據觀測和事件配置之前被調用,此時組件的選項對象還未創(chuàng)建,el 和 data 并未初始化,因此無法訪問methods, data, computed等上的方法和數據。
created ( 創(chuàng)建后 )
實例已經創(chuàng)建完成之后被調用,在這一步,實例已完成以下配置:數據觀測、屬性和方法的運算,watch/event事件回調,完成了data 數據的初始化,el沒有。 然而,掛在階段還沒有開始, $el屬性目前不可見,這是一個常用的生命周期,因為你可以調用methods中的方法,改變data中的數據,并且修改可以通過vue的響應式綁定體現在頁面上,,獲取computed中的計算屬性等等,通常我們可以在這里對實例進行預處理,也有一些童鞋喜歡在這里發(fā)ajax請求,值得注意的是,這個周期中是沒有什么方法來對實例化過程進行攔截的,因此假如有某些數據必須獲取才允許進入頁面的話,并不適合在這個方法發(fā)請求,建議在組件路由鉤子beforeRouteEnter中完成
beforeMount
掛在開始之前被調用,相關的render函數首次被調用(虛擬DOM),實例已完成以下的配置: 編譯模板,把data里面的數據和模板生成html,完成了el和data 初始化,注意此時還沒有掛在html到頁面上。
mounted
掛在完成,也就是模板中的HTML渲染到HTML頁面中,此時一般可以做一些ajax操作,mounted只會執(zhí)行一次。
beforeUpdate
在數據更新之前被調用,發(fā)生在虛擬DOM重新渲染和打補丁之前,可以在該鉤子中進一步地更改狀態(tài),不會觸發(fā)附加地重渲染過程
updated(更新后)
在由于數據更改導致地虛擬DOM重新渲染和打補丁只會調用,調用時,組件DOM已經更新,所以可以執(zhí)行依賴于DOM的操作,然后在大多是情況下,應該避免在此期間更改狀態(tài),因為這可能會導致更新無限循環(huán),該鉤子在服務器端渲染期間不被調用
beforeDestroy(銷毀前)
在實例銷毀之前調用,實例仍然完全可用,
- 這一步還可以用this來獲取實例,
- 一般在這一步做一些重置的操作,比如清除掉組件中的定時器 和 監(jiān)聽的dom事件
destroyed(銷毀后)
在實例銷毀之后調用,調用后,所以的事件監(jiān)聽器會被移出,所有的子實例也會被銷毀,該鉤子在服務器端渲染期間不被調用