什么是vue生命周期
vue實(shí)例從創(chuàng)建到銷毀的過程,就是生命周期。具體就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載DOM→渲染、更新→渲染、卸載等一系列過程。
vue生命周期的作用是什么?
生命周期中有多個(gè)事件鉤子,讓我們在控制整個(gè)Vue實(shí)例的過程中更容易形成好的邏輯
vue生命周期總共有幾個(gè)階段?
總共可以分8個(gè)階段:創(chuàng)建前/后、載入前/后、更新前/后、銷毀前/后
第一次頁面加載會觸發(fā)哪幾個(gè)鉤子?
第一次頁面加載時(shí)會觸發(fā)beforeCreate、created、beforeMount、mounted這幾個(gè)鉤子
請列舉出3個(gè)Vue常用的聲明周期鉤子函數(shù)
created:實(shí)例已經(jīng)創(chuàng)建完成之后調(diào)用,在這一步,實(shí)例已經(jīng)完成數(shù)據(jù)觀測、屬性和方法的運(yùn)算,watch、event事件回調(diào),然而,掛載階段還沒有開始,el替換,并掛載到實(shí)例上去之后調(diào)用該鉤子,如果root實(shí)例掛在了一個(gè)文檔內(nèi)元素,當(dāng)mounted被調(diào)用時(shí)vm.$el也在文檔內(nèi)。
activated:keep-alive組件激活時(shí)調(diào)用
Vue有幾個(gè)生命周期?哪個(gè)生命周期可以獲取到真實(shí)DOM?修改data里面的數(shù)據(jù),會觸發(fā)什么生命周期?
簡單來說,vue的生命周期可以歸為3類,創(chuàng)建階段、運(yùn)行階段、銷毀階段。
創(chuàng)建階段
beforeCreate:實(shí)例剛在內(nèi)存中創(chuàng)建出來,還沒有初始化 data和 methods,只包含一些自帶額生命周期函數(shù)。
created:實(shí)例已經(jīng)在內(nèi)存中創(chuàng)建完成,此時(shí)data和methods已經(jīng)創(chuàng)建完成。
beforeMount:此時(shí)已經(jīng)編譯模版,但沒有渲染到頁面中。
mounted:渲染模版,創(chuàng)建階段到此結(jié)束。這時(shí)候可以操作dom。
運(yùn)行階段
beforeUpdate:界面中的數(shù)據(jù)還是舊的,但是data數(shù)據(jù)已經(jīng)更新,頁面中和data還沒有同步。修改data數(shù)據(jù)就會觸發(fā)這個(gè)函數(shù)。
updated:頁面重新渲染完畢,頁面中的數(shù)據(jù)和data保持一致。修改data數(shù)據(jù)就會觸發(fā)這個(gè)函數(shù)。
銷毀階段
beforeDestroy:執(zhí)行該方法的時(shí)候,Vue的生命周期已經(jīng)進(jìn)入銷毀階段,但是實(shí)例上的各種數(shù)據(jù)還出于可用狀態(tài)。
destroyed:組件已經(jīng)全部銷毀,Vue實(shí)例已經(jīng)被銷毀,Vue中的任何數(shù)據(jù)都不可用