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

1.解釋單向數(shù)據(jù)流和雙向數(shù)據(jù)綁定
對于vue來說,組件之間的數(shù)據(jù)傳遞具有單向數(shù)據(jù)流這樣的特性稱為單向數(shù)據(jù)流,單向數(shù)據(jù)流(unidirectional data flow)方式使用一個上傳數(shù)據(jù)流和一個下傳數(shù)據(jù)流進行雙向數(shù)據(jù)通信,兩個數(shù)據(jù)流之間相互獨立,單向數(shù)據(jù)流指只能從一個方向來修改狀態(tài)。
而雙向數(shù)據(jù)綁定即為數(shù)據(jù)發(fā)生變化的時候,視圖也就發(fā)生變化,當視圖發(fā)生變化的時候,數(shù)據(jù)也會跟著同步變化,兩個數(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.Composition API 的出現(xiàn)帶來哪些新的開發(fā)體驗,為啥需要這個
1.在Composition API 中時根據(jù)邏輯相關(guān)組織代碼的,提高代碼可讀性和可維護性,類似于react的hook寫法。
2.更好的重用邏輯代碼,在options API中通過MIxins重用邏輯代碼,容易發(fā)生命名沖突且關(guān)系不清
3.解決在生命周期函數(shù)經(jīng)常包含不相關(guān)的邏輯,但又不得不把相關(guān)邏輯分離到了幾個不同方法中的問題,如在mounted中設(shè)置定時器,但需要在destroyed中清除定時器,將同一功能的代碼拆分到不同的位置,造成后期代碼維護的困難。
4.對比JQuery,Vue 有什么不同
JQery專注視圖層,通過直接DOM去實現(xiàn)頁面的一些邏輯渲染;Vue專注于數(shù)據(jù)層,通過數(shù)據(jù)的雙向綁定,最終表現(xiàn)在Dom層面,減少了Dom操作,Vue使用了組件化思想,使得項目子集職責清晰,提高了開發(fā)效率,方便重復(fù)利用,便于協(xié)同開發(fā)。