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





暫無評論,快來評論吧!