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

1.解釋單向數(shù)據(jù)流和雙向數(shù)據(jù)綁定
在 vue中 ,單向數(shù)據(jù)流使用一個上傳和下傳兩個數(shù)據(jù)流之間相互獨立,單向數(shù)據(jù)流指只能從一個方向來修改狀態(tài)。
而雙向數(shù)據(jù)綁定總的來說就是兩條線,模型到視圖,視圖到模型
2.Object. defineProperty 有什么缺點
1、無法監(jiān)聽es6的 Set 、 Map 變化;
2、無法監(jiān)聽 Class 類型的數(shù)據(jù);
3、屬性的新加或者刪除也無法監(jiān)聽;
4、數(shù)組元素的增加和刪除也無法監(jiān)聽。
3.對 MVC , MVP , MVVM 的理解
MVC
View 視圖操作后,處理的權利交移給 Controller控制臺進行預處理,然后由 Model 執(zhí)行相關的業(yè)務邏輯;當 Model 變更后, View 通過觀察者模式收變更消息,會向 Model 請求最新的數(shù)據(jù),然后重新更新界面。View 無法組件化,無法復用
MVP
和 MVC 模式一樣,可以復用
View 可以進行組件化,但維護困難,無法實現(xiàn)響應式
MVVM
?雙向數(shù)據(jù)綁定,視圖到模型,模型到視圖
4、生命周期
三個階段
初始階段和更新階段、銷毀階段
常用:
初始化階段(初次渲染階段):beforeCreated、created、beforeMount、mounted
更新階段(再次渲染階段):beforeUpdate、updated
銷毀階段:beforeDestory、destoryed
5.Vue 響應式數(shù)據(jù)原理 Proxy 與 Object . defineProperty 優(yōu)劣對比
響應式原理:
?defineProperty和setter getter進行攔截,一旦數(shù)據(jù)發(fā)生改變,setter方法開始調用watcher,watcher再調用render函數(shù)生成虛擬dome,虛擬dome對比老虛擬dome,發(fā)現(xiàn)區(qū)別就以最小代價更新dome節(jié)點,實現(xiàn)頁面的更新操作
?proxy 優(yōu)勢如下:
?Proxy 可以直接監(jiān)聽對象而非屬性。可以直接監(jiān)聽數(shù)組的變化
?Proxy 返回的是一個新對象,我們可以只操作新的對象達到目的
而 Object. defineProperty 只能遍歷對象屬性直接修改:
// Object . defineProperty 的優(yōu)勢如下:
兼容性好,支持IE9,雨 Proxy 的存在瀏覽墨兼容性問題
6.Composition API 的出現(xiàn)帶來哪些新的開發(fā)體驗,為啥需要這個?
1:在 Compostion API 中時根據(jù)邏輯相關組織代碼的,提高可讀性和可維護性,類似于 react 的 hook 寫法。2:更好的重用邏輯代碼,在 Options API 中通過 MIxins 重用邏輯代碼,容易發(fā)生命名沖突且關系不清。
3:解決在生命周期函數(shù)經(jīng)常包含不相關的邏輯,但又不得不把相關邏輯分離到了幾個不同方法中的問題,如在 mounted 中設置定時器,但需要在 destroyed 中來清除定時器,將同一功能的代碼拆分到不同的位置,造成后期代碼維護的困難。
7.對比 jQuery , Vue 有什么不同
?jQuery 專注視圖層,通過直接操作 DOM 去實現(xiàn)頁面的一些邏輯渲染; Vue 專注于數(shù)據(jù)層,通過數(shù)據(jù)的雙向綁定,最終表現(xiàn)在 DOM 層面。減少了 DOM 操作。 Vue 使用了組件化思想,使得項目子集職責清晰,提高了開發(fā)效率,方便重復利用,便協(xié)同開發(fā)
35
8.如何再 Vue 的單文件組件里的樣式定義全局 CSS ?
在sty1e標簽上不加上 scoped 的屬性,默認為全局 css 樣式
9.說一下 Sroot ,$ parent , Srefs?
$ root ,和$ parent 都能訪問父組件的屬性和方法,區(qū)別在于如果存在多級子組件,通過 parent 訪問得到的是它最近一級的父組件,通過 root 訪問得到的是根父組件。通過在子組件標簽定義 ref 屬性,在父組件中可以使用 Srefs 訪問子組件實例。
10.Vue中怎么自定義指令
通過 directive 來自定義指令,自定義指令分為全局指令和局部指令,自定義指令也有幾個的鉤子函數(shù),常用的有 bind 和 update ,當 bind 和 update 時觸發(fā)相同行為,而不關心其它的鉤子時可以簡寫。