千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

1.單向數(shù)據(jù)流:
???只能從父組件傳入子組件,子組件必須要用emit才能傳入父組件
2.雙向數(shù)據(jù)綁定
???vue特性 試圖發(fā)生改變數(shù)據(jù)就會(huì)發(fā)生改變 兩個(gè)數(shù)據(jù)流之間互相影響
3.object.defineProperty缺點(diǎn)
???無(wú)法監(jiān)聽(tīng)es6的set map變化
???無(wú)法監(jiān)聽(tīng)class類(lèi)型的數(shù)據(jù)
???屬性新增或刪除無(wú)法監(jiān)聽(tīng)到
??數(shù)組元素的增加無(wú)法監(jiān)聽(tīng)到
4.MVC MVP MVVM
???雙向綁定機(jī)制 構(gòu)建和成本減低
5.生命周期
?beforeCreate?=> setup
?Created??=>setup
beforeMount => onbeforMount?發(fā)送請(qǐng)求
mounted =>onMounted
6.vue響應(yīng)式數(shù)據(jù)原理
?通過(guò)object.defineProperty的方法里面的setter與getter方法的觀察者模式來(lái)實(shí)現(xiàn)?
在組件初始化時(shí)會(huì)給每一個(gè)data屬性注 冊(cè)getter和setter,然后再new一個(gè)自己的Watcher對(duì)象,此時(shí)watcher會(huì)立
即調(diào)用組件的render函數(shù)去生成虛擬DOM。在調(diào)用render的時(shí)候,就會(huì)需要用到data的屬性值,此時(shí)會(huì)觸發(fā)getter函
數(shù),將當(dāng)前的Watcher函數(shù)注冊(cè)進(jìn)sub里。當(dāng)data屬性發(fā)生改變之后, 就會(huì)遍歷sub里所有的watcher對(duì)象,通知它們?nèi)?/p>
重新渲染組件。
?proxy優(yōu)勢(shì):
直接監(jiān)聽(tīng)對(duì)象而非屬性 可以之間接聽(tīng)數(shù)組的變化
?proxy返回一個(gè)新對(duì)象我們可以只操作新的對(duì)象達(dá)到目的
object.defineProperty優(yōu)勢(shì)
兼容性好 支持IE9而proxy的存在瀏覽器兼容性問(wèn)題 無(wú)法用polydill來(lái)彌補(bǔ)
7.Composition?API的出現(xiàn)帶來(lái)那些的開(kāi)發(fā)體驗(yàn) 為啥需要這個(gè)
?提高了可讀性 和 可維護(hù)性
8.對(duì)比jQuery vue有什么不同
jQuery專(zhuān)注視圖層 通過(guò)直接操作dom去實(shí)現(xiàn)邏輯
vue專(zhuān)注數(shù)據(jù)層 提供開(kāi)發(fā)效率?協(xié)同開(kāi)發(fā) 通過(guò)數(shù)據(jù)雙向綁定 最終表現(xiàn)在dom層面 減少了dom
9.vue單文件組件里樣式如何定義全局
在style標(biāo)簽上不加scoped的屬性 默認(rèn)就為全局
10.$root $parent $refs
$root $parent訪問(wèn)父組件屬性方法 區(qū)別在于如果存在多級(jí)組件 通過(guò)parent訪問(wèn)他的父組件
通過(guò)root訪問(wèn)得到的是跟父組件 通過(guò)在子組件標(biāo)簽ref屬性在父組件組件中可以使用$refs訪問(wèn)子組件實(shí)例
11.vue中怎么自定指令
通過(guò)directive來(lái)自定義指令?就是操作底層dom的
12、單頁(yè)面的優(yōu)缺點(diǎn)
優(yōu)點(diǎn): 內(nèi)容改變不需要重新加載整個(gè)頁(yè)面 web應(yīng)用更具有響應(yīng)性和更令人著迷
??????沒(méi)有頁(yè)面之間的切換 就不會(huì)出現(xiàn)“白屏現(xiàn)象” 也不會(huì)出現(xiàn)假死并有“閃爍”現(xiàn)象
?????對(duì)服務(wù)器壓力小 服務(wù)器只用出現(xiàn)數(shù)據(jù)就可以 不用管展示邏輯和頁(yè)面合成
?????前后端分離 后端不負(fù)責(zé)頁(yè)面渲染
缺點(diǎn):首次加載時(shí)間過(guò)長(zhǎng)
?????SEO問(wèn)題 不利于百度 360等搜索引擎收錄
?????容易造成css命名沖突
13.keep-alive
是vue內(nèi)置組件 可以是被包含的組件保留狀態(tài) 避免重新渲染