vue前端面試題

又到了一年一次的面試了,前段時(shí)間看到面試題,感覺(jué)自己好像只知道怎么做,卻真的不了解vue,哎,不得說(shuō)自己真的能力有限,基礎(chǔ)不結(jié)實(shí),話不多說(shuō),下面就是自己看到網(wǎng)上vue面試題,找到的答案

1.??vue生命周期是什么?vue生命周期詳解

vue生命周期是什么?

Vue生命周期是指vue實(shí)例對(duì)象從創(chuàng)建之初到銷(xiāo)毀的過(guò)程,vue所有功能的實(shí)現(xiàn)都是圍繞其生命周期進(jìn)行的,在生命周期的不同階段調(diào)用對(duì)應(yīng)的鉤子函數(shù)可以實(shí)現(xiàn)組件數(shù)據(jù)管理和DOM渲染兩大重要功能。

vue生命周期可以分為八個(gè)階段

beforeCreate(創(chuàng)建前)、created(創(chuàng)建后)、

beforeMount(載入前)、mounted(載入后)、

beforeUpdate(更新前)、updated(更新后)、

beforeDestroy(銷(xiāo)毀前)、destroyed(銷(xiāo)毀后)

1、創(chuàng)建前(beforeCreate)

對(duì)應(yīng)的鉤子函數(shù)為beforeCreate。此階段為實(shí)例初始化之后,此時(shí)的數(shù)據(jù)觀察和事件機(jī)制都未形成,不能獲得DOM節(jié)點(diǎn)。

2、創(chuàng)建后(created)

對(duì)應(yīng)的鉤子函數(shù)為created。在這個(gè)階段vue實(shí)例已經(jīng)創(chuàng)建,仍然不能獲取DOM元素。

3、載入前(beforeMount)

對(duì)應(yīng)的鉤子函數(shù)是beforemount,在這一階段,我們雖然依然得不到具體的DOM元素,但vue掛載的根節(jié)點(diǎn)已經(jīng)創(chuàng)建,下面vue對(duì)DOM的操作將圍繞這個(gè)根元素繼續(xù)進(jìn)行;beforeMount這個(gè)階段是過(guò)渡性的,一般一個(gè)項(xiàng)目只能用到一兩次。

4、載入后(mounted)

對(duì)應(yīng)的鉤子函數(shù)是mounted。mounted是平時(shí)我們使用最多的函數(shù)了,一般我們的異步請(qǐng)求都寫(xiě)在這里。在這個(gè)階段,數(shù)據(jù)和DOM都已被渲染出來(lái)。

5、更新前(beforeUpdate)

對(duì)應(yīng)的鉤子函數(shù)是beforeUpdate。在這一階段,vue遵循數(shù)據(jù)驅(qū)動(dòng)DOM的原則;beforeUpdate函數(shù)在數(shù)據(jù)更新后雖然沒(méi)立即更新數(shù)據(jù),但是DOM中的數(shù)據(jù)會(huì)改變,這是Vue雙向數(shù)據(jù)綁定的作用。

6、更新后(updated)

對(duì)應(yīng)的鉤子函數(shù)是updated。在這一階段DOM會(huì)和更改過(guò)的內(nèi)容同步。

7、銷(xiāo)毀前(beforeDestroy)

對(duì)應(yīng)的鉤子函數(shù)是beforeDestroy。在上一階段vue已經(jīng)成功的通過(guò)數(shù)據(jù)驅(qū)動(dòng)DOM更新,當(dāng)我們不在需要vue操縱DOM時(shí),就需要銷(xiāo)毀Vue,也就是清除vue實(shí)例與DOM的關(guān)聯(lián),調(diào)用destroy方法可以銷(xiāo)毀當(dāng)前組件。在銷(xiāo)毀前,會(huì)觸發(fā)beforeDestroy鉤子函數(shù)。

8、銷(xiāo)毀后(destroyed)

對(duì)應(yīng)的鉤子函數(shù)是destroyed。在銷(xiāo)毀后,會(huì)觸發(fā)destroyed鉤子函數(shù)。

vue的生命周期的思想貫穿在組件開(kāi)發(fā)的始終,通過(guò)熟悉其生命周期調(diào)用不同的鉤子函數(shù),我們可以準(zhǔn)確地控制數(shù)據(jù)流和其對(duì)DOM的影響;vue生命周期的思想是Vnode和MVVM的生動(dòng)體現(xiàn)和繼承。

參考地址:https://www.php.cn/js-tutorial-412302.html

2. 第一次頁(yè)面加載會(huì)觸發(fā)哪幾個(gè)鉤子

(1)根實(shí)例的加載相關(guān)的生命周期(beforeCreate、created、beforeMount、mounted)

(2)組件實(shí)例的加載相關(guān)的生命周期(beforeCreate、created、beforeMount、mounted)

(3)全局路由勾子(router.beforeEach)

(4)組件路由勾子(beforeRouteEnter)

(5)組件路由勾子的next里的回調(diào)(beforeRouteEnter)

(6)指令的周期(bind,inserted)

(7)nextTick方法的回調(diào)

參考地址:https://blog.csdn.net/luo_tianhong/article/details/79552721

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容