Vue生命周期區(qū)別詳解
生命周期分類
vue每個組件都是獨立的,每個組件都有一個屬于它的生命周期,
從一個組件創(chuàng)建、數(shù)據(jù)初始化、掛載、更新、銷毀,這就是一個組件所謂的生命周期。
在組件中具體的方法有:
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed
beforeCreate( 創(chuàng)建前 )
在實例初始化之后,數(shù)據(jù)觀測和事件配置之前被調(diào)用,此時組件的選項對象還未創(chuàng)建,el 和 data 并未初始化,因此無法訪問methods,
data, computed等上的方法和數(shù)據(jù)。
created ( 創(chuàng)建后 )
實例已經(jīng)創(chuàng)建完成之后被調(diào)用,在這一步,實例已完成以下配置:數(shù)據(jù)觀測、屬性和方法的運算,watch/event事件回調(diào),完成了data 數(shù)據(jù)的初始化,el沒有。 然而,掛在階段還沒有開始, $el屬性目前不可見,這是一個常用的生命周期,因為你可以調(diào)用methods中的方法,改變data中的數(shù)據(jù),并且修改可以通過vue的響應(yīng)式綁定體現(xiàn)在頁面上,,獲取computed中的計算屬性等等,通常我們可以在這里對實例進行預(yù)處理
beforeMount(掛載前)
掛在開始之前被調(diào)用,相關(guān)的render函數(shù)首次被調(diào)用(虛擬DOM),實例已完成以下的配置: 編譯模板,把data里面的數(shù)據(jù)和模板生成html,完成了el和data 初始化,注意此時還沒有掛在html到頁面上。
mounted(掛載后)
掛在完成,也就是模板中的HTML渲染到HTML頁面中,此時一般可以做一些ajax操作,mounted只會執(zhí)行一次。
beforeUpdate(更新前)
在數(shù)據(jù)更新之前被調(diào)用,發(fā)生在虛擬DOM重新渲染和打補丁之前,可以在該鉤子中進一步地更改狀態(tài),不會觸發(fā)附加地重渲染過程
updated(更新后)
在由于數(shù)據(jù)更改導(dǎo)致地虛擬DOM重新渲染和打補丁只會調(diào)用,調(diào)用時,組件DOM已經(jīng)更新,所以可以執(zhí)行依賴于DOM的操作,然后在大多是情況下,應(yīng)該避免在此期間更改狀態(tài),因為這可能會導(dǎo)致更新無限循環(huán),該鉤子在服務(wù)器端渲染期間不被調(diào)用
beforeDestroy(銷毀前)
在實例銷毀之前調(diào)用,實例仍然完全可用,
這一步還可以用this來獲取實例,
一般在這一步做一些重置的操作,比如清除掉組件中的定時器 和 監(jiān)聽的dom事件
destroyed(銷毀后)
在實例銷毀之后調(diào)用,調(diào)用后,所以的事件監(jiān)聽器會被移出,所有的子實例也會被銷毀,該鉤子在服務(wù)器端渲染期間不被調(diào)用
vue實例已經(jīng)解除了事件監(jiān)聽以及dom的綁定,但是dom結(jié)構(gòu)依然存在
執(zhí)行順序(圖示)

到此這篇關(guān)于Vue生命周期區(qū)別詳解的文章就介紹到這了,更多相關(guān)Vue生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+element-ui+axios實現(xiàn)圖片上傳
這篇文章主要為大家詳細介紹了vue+element-ui+axios實現(xiàn)圖片上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
前端element-ui兩層dialog嵌套遮罩層消失的問題解決辦法
最近使用vue+elementUI做項目,使用過程中很多地方會用到dialog這個組件,有好幾個地方用到了dialog的嵌套,這篇文章主要給大家介紹了關(guān)于前端element-ui兩層dialog嵌套遮罩層消失的問題解決辦法,需要的朋友可以參考下2024-08-08
Vue如何使用patch-package優(yōu)雅地修改第三方依賴庫
在前端開發(fā)中,有時我們需要對第三方依賴庫進行修改以滿足項目需求,patch-package 是一個優(yōu)秀的工具,可以幫助我們優(yōu)雅地管理這些修改,下面我們來看看具體操作吧2025-03-03

