* 什么是生命周期询兴?
|- 每個Vue實例在被創(chuàng)建時都要經(jīng)過一系列的初始化過程:
開始創(chuàng)建 -> 初始化數(shù)據(jù) -> 編譯模板 -> 掛載DOM-渲染 -> 更新-渲染 -> 銷毀等一系列過程
通俗而言:Vue實例從創(chuàng)建到銷毀的過程
生命周期分為8個過程:創(chuàng)建前唆貌,創(chuàng)建后缸浦,掛載前,掛載后渣慕,更新前嘶炭,更新后,銷毀前逊桦,銷毀后眨猎。
* vue生命周期的作用是什么?
|- 在Vue實例經(jīng)過一系列初始化的過程中也會運行一些 叫做?生命周期鉤子?的函數(shù), 生命週期裡邊這些事件鉤子卫袒,給予了用戶在不同階段可以添加自己代碼的機會宵呛。
* 第一次頁面加載會觸發(fā)哪幾個鉤子?
|-beforeCreate
實例剛剛被創(chuàng)建,實例初始化之后夕凝,數(shù)據(jù)觀測和事件配置之前
|-created
在實例創(chuàng)建完成后被立即調(diào)用。
在這一步户秤,實例已完成以下的配置:數(shù)據(jù)觀測 (data observer)码秉,屬性和方法的運算,watch/event 事件回調(diào)鸡号。然而转砖,掛載階段還沒開始,$el 屬性目前不可見
|-beforeMount(該鉤子在服務(wù)器端渲染期間不被調(diào)用)
模板編譯掛載之前,HTML界面沒生成在掛載開始之前被調(diào)用:相關(guān)的 render 函數(shù)首次被調(diào)用府蔗。
|-activated(該鉤子在服務(wù)器端渲染期間不被調(diào)用)
keep-alive 組件激活時調(diào)用(只有在keep-alive組件才會被調(diào)用)
|-mounted(該鉤子在服務(wù)器端渲染期間不被調(diào)用)
模板已經(jīng)掛載完成(DOM 渲染在 mounted 中就已經(jīng)完成了)晋控;該鉤子在服務(wù)器端渲染期間不被調(diào)用。
* 每個周期具體適合哪些場景?
例如:
beforecreate : 譬如常見的加loading事件
created :在這結(jié)束loading姓赤,還做一些初始化赡译,實現(xiàn)函數(shù)自執(zhí)行
mounted : 在這發(fā)起后端請求,拿回數(shù)據(jù)不铆,配合路由鉤子做一些事情
beforeDestory: 你確認(rèn)刪除XX嗎蝌焚? destoryed :當(dāng)前組件已被刪除,清空相關(guān)內(nèi)容
* created和mounted的區(qū)別?
beforecreated:el 和 data 并未初始化
created:完成了 data 數(shù)據(jù)的初始化誓斥,el沒有 渲染前調(diào)用只洒,初始化某些屬性值,再渲染
beforeMount:完成了 el 和 data 初始化
mounted :完成掛載? 渲染后再調(diào)用劳坑,初始化頁面完成后,再對DOM節(jié)點進行操作
* vue獲取數(shù)據(jù)在哪個周期函數(shù)?
一般created/beforeMount/mounted 皆可? 正常獲取在 created 里面即可距芬,如果涉及到需要頁面加載完成之后(DOM操作)的就用 mounted