(五)Vue 面试真题演练
Vue 面試真題演練
- v-show和v-if的區(qū)別
- 為何在v-for中用key
- 描述vue組件生命周期(父子組件)
- vue組件如何通訊(常見)
- 描述組件渲染和更新的過程
- 雙向數(shù)據(jù)綁定v-model的實現(xiàn)原理
- 對MVVM的理解
- computed有 何特點
- 為何組件data必須是一個函數(shù)
- ajax請求應該放在哪個生命周期
- 如何將組件所有props傳遞給子組件
- 如何自己實現(xiàn)v-model
- 多個組件有相同的邏輯,如何抽離?
- 何時要使用異步組件
- 何時需要使用keep-alive
- 何時需要使用beforeDestory
- 什么是作用域插槽
- Vuex中action和mutation有何區(qū)別
- Vue-router常用的路由模式
- 如何配置Vue-router異步加載
- 請用vnode描述一個DOM結構
- 監(jiān)聽data變化的核心API是什么
- Vue如何監(jiān)聽數(shù)組變化
- 請描述響應式原理
- diff算法的時間復雜度
- 簡述diff算法過程
- Vue為何是異步渲染,$nextTick何用
- Vue常見性能優(yōu)化方式
v-show和v-if的區(qū)別
v-show通過CSS display 控制顯示和隱藏
v-if組件真正的渲染和銷毀,而不是顯示和隱藏
頻繁切換顯示狀態(tài)用v-show,否則用v-if
為何在v-for中用key
必須用key,且不能是index和random
diff算法中通過tag和key來判斷,是否是sameNode
減少渲染次數(shù),提升渲染性能
描述vue組件生命周期(父子組件)
單組件生命周期圖
父子組件生命周期關系
vue組件如何通訊(常見)
父子組件props和this.emit自定義事件event.emit 自定義事件event.emit自定義事件event.no event.offevent.off event.offevent.emit
vuex
描述組件渲染和更新的過程
雙向數(shù)據(jù)綁定v-model的實現(xiàn)原理
input元素的value - this.name
綁定input事件 this.name = $event.target.value
data更新觸發(fā)re-render
對MVVM的理解
computed有 何特點
緩存,data不變不會重新計算
提高性能
為何組件data必須是一個函數(shù)
定義的.vue組件它是一個類,每個地方使用組件相當于類的實例化
ajax請求應該放在哪個生命周期
mounted
JS是單線程的,ajax異步獲取數(shù)據(jù)
放在mounted之前沒有用,只會讓邏輯更加混亂
如何將組件所有props傳遞給子組件
props<Userv?bind="props <User v-bind="props<Userv?bind="props" />
細節(jié)知識點,優(yōu)先級不高
如何自己實現(xiàn)v-model
多個組件有相同的邏輯,如何抽離?
mixin
以及mixin的一些缺點
何時要使用異步組件
加載大組件
路由異步加載
何時需要使用keep-alive
緩存組件,不需要重復渲染
如多個靜態(tài)tab頁的切換
優(yōu)化性能
何時需要使用beforeDestory
解綁自定義事件 event.$off
清除定時器
解綁自定義的DOM時間,如window scroll等
什么是作用域插槽
Vuex中action和mutation有何區(qū)別
action中處理異步,mutation不可以
mutation做原子操作
action可以整合多個mutation
Vue-router常用的路由模式
hash默認
H5 history(需要服務端支持)
兩者比較
如何配置Vue-router異步加載
請用vnode描述一個DOM結構
監(jiān)聽data變化的核心API是什么
Object.defineProperty
以及深度監(jiān)聽、監(jiān)聽數(shù)組
有何缺點
Vue如何監(jiān)聽數(shù)組變化
Object.defineProperty不能監(jiān)聽數(shù)組變化
重新定義原型,重寫push pop等方法,實現(xiàn)監(jiān)聽
Proxy可以原生支持監(jiān)聽數(shù)組變化
請描述響應式原理
監(jiān)聽data變化
組件渲染和更新的流程
diff算法的時間復雜度
O(n)
在O(n^3)基礎上做了一些調(diào)整
簡述diff算法過程
patch(elem,vnode)和patch(vnode,newVnode)
patchVnode和addVnodes和removeVnodes
updateChildren(key的重要性)
Vue為何是異步渲染,$nextTick何用
異步渲染(以及合并data修改),以提高渲染性能
$nextTick在DOM更新完之后,觸發(fā)回調(diào)
Vue常見性能優(yōu)化方式
合理使用v-show和v-if
合理使用computed
v-for時價key,以及避免和v-if同時使用
自定義事件、DOM事件及時銷毀
合理使用異步組件
合理使用keep-alive
data層級不要太深
使用vue-loader在開發(fā)環(huán)境做模板編譯(預編譯)
webpack層面的優(yōu)化(后面會講)
前端通用的性能優(yōu)化,如圖片懶加載
使用SSR
總結
以上是生活随笔為你收集整理的(五)Vue 面试真题演练的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (四)Vue原理
- 下一篇: (六)Vue3.0预学习