Vue實(shí)例從開(kāi)始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載Dom→渲染、更新→渲染、卸載等一系列過(guò)程,我們稱(chēng)這是Vue的生命周期,各個(gè)階段有相對(duì)應(yīng)的事件鉤子。
生命周期鉤子函數(shù)
beforeCreated階段,vue實(shí)例的掛載元素$el和數(shù)據(jù)對(duì)象data都為undefined,還未初始化。在created階段,vue實(shí)例的數(shù)據(jù)對(duì)象data有了,$el還沒(méi)有。
在beforeMount階段,vue實(shí)例的$el和data都初始化了,但還是掛載之前為虛擬的dom節(jié)點(diǎn),data.message還未替換。在mounted階段,vue實(shí)例掛載完成,data.message成功渲染。
更新前/后:當(dāng)data變化時(shí),會(huì)觸發(fā)beforeUpdate和updated方法。
銷(xiāo)毀前/后:在執(zhí)行destroy方法后,對(duì)data的改變不會(huì)再觸發(fā)周期函數(shù),說(shuō)明此時(shí)vue實(shí)例已經(jīng)解除了事件監(jiān)聽(tīng)以及和dom的綁定,但是dom結(jié)構(gòu)依然存在
注意:
created階段的ajax請(qǐng)求與mounted請(qǐng)求的區(qū)別:前者頁(yè)面視圖未出現(xiàn),如果請(qǐng)求信息過(guò)多,頁(yè)面會(huì)長(zhǎng)時(shí)間處于白屏狀態(tài)
mounted不會(huì)承諾所有的子組件也都一起被掛載。如果你希望等到整個(gè)視圖都渲染
完畢,可以用vm.$nextTick





暫無(wú)評(píng)論,快來(lái)評(píng)論吧!