生命周期相關面試題
生命總共分為8個階段創建前/后、載入前/后、更新前/后、銷毀前/后
創建前/后 :
在beforeCreate階段,vue實例的掛載元素el和數據對象data都為undefined,還未初始化。
在created階段,vue實例的數據data有了,el還沒有
載入前/后:
在beforeMount階段,vue實例的$el和data都初始化了,但還沒有掛載之前都是虛擬的demo階段,data.message還未替換.
在mounted階段,vue實例掛載完后,data.message成功渲染.
更新前/后:當data變化時,戶觸發beforeUpdate和update方法。
銷毀前/后:
在執行destroy方法后,對data的改變不會再觸發周期函數,說明此時vue實例已經結束了事件監聽以及和dom的綁定,但是dom結構依然存在。
什么是vue生命周期?
vue實例從創建到銷毀的過程,就是生命周期。也就是從開始創建、初始化數據、編譯模板、掛載DOM→渲染、更新→渲染、卸載等一系列過程,我們稱這是Vue的生命周期。
vue生命周期的作用是什么?
生命周期中有多個事件鈎子,讓我們在控制整個Vue實例的過程中更容易形成好的邏輯
vue生命周期總共有幾個階段?
總共可以分8個階段:創建前/后、載入前/后、更新前/后、銷毀前/后
第一次頁面加載會觸發哪幾個鈎子?
第一次頁面加載時會觸發beforeCreate、created、beforeMount、mounted這幾個鈎子
請列舉出3個Vue常用的聲明周期鈎子函數
created:實例已經創建完成之后調用,在這一步,實例已經完成數據觀測、屬性和方法的運算,watch、event事件回調,然而,掛載階段還沒有開始,$el屬性目前還不可見
mounted:el被新創建的vm.$el替換,並掛載到實例上去之后調用該鈎子,如果root實例掛在了一個文檔內元素,當mounted被調用時vm.$el也在文檔內。
activated:keep-alive組件激活時調用
DOM渲染在那個周期中已完成?
DOM渲染在mounted中就已經完成了