日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

前端面试题:谈一谈vue和react的区别?

發布時間:2024/1/18 vue 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端面试题:谈一谈vue和react的区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)從編程范式的角度講

  • 在vue-loader、vue-template-compiler的支持下,vue可以采用SFC單文件組織的方式實現組件化;vue有指令,使用指令能夠方便地渲染視圖,vue表單是雙向綁定的;vue組件是基于選項式的編程,常用選項有生命周期、計算屬性、偵聽器等;vue的組件庫十分繁榮,自定義屬性、自定義事件、自定義插槽是vue組件化的三大基礎。眾多社區中的vue輪子,在vue架構中被Vue.use注冊即可使用。
  • react的語法基礎是JSX,react中沒有指令,元素渲染、條件渲染、列表渲染、動態樣式都是基于JSX語法的。在webpack環境中,要安裝@babel/core、@babel/preset-react等,實現對JSX的編譯。React表單是單向綁定的,推薦使用受控表單。組件封裝可以是類組件,也可以函數式組件,其中props是React組件化的核心。

(2)從組件通信的角度講

  • 在vue組件通信中,跨組件通信的手段極其豐富且靈活,常用的通信方案有父子組件通信、ref通信、事件總線、provide/inject、parent/children、listeners/attrs、slot插槽通信等。除此之外,在vue中還可以使用vuex 或 mobx 來實現跨組件通信??傮w上來講,vue的組件通信極其靈活,自上而下、自下而上都是容易實現的;也正是因為過于靈活,這會“誘惑”開發者容易濫用通信手段,導致vue項目呈現出“易開發、難維護”的現狀。
  • 在react中數據是單向數據流,在組件樹中數據只能自上而下地分發和傳遞。state是組件自有的狀態數據,props是父級組件傳遞過來的數據。在react中最最基本的通信方案是狀態提升,還有React上下文也可以實現自上而下的數據流。鑒于react這種數據流的特性,即使集成了Redux仍然會呈現出單向數據流的特征,因此React數據流更容易被管理,配合Redux一起更適合做中大型的項目開發。

(3)從底層原理的角度講

  • vue支持指令是因為背后有vue-template-compiler這個編譯器的支持,把帶有指令的視圖模板轉化成AST抽象語法樹,進一步轉化成虛擬DOM。vue的響應式原理是使用了 Object.defineProperty 進行了數據劫持,數據劫持發生vue組件的創建階段,vue的響應式原理和mobx狀態管理的響應式原理相似,這種響應式實現最早出現在 knockout 框架。如果要手寫一個簡單版本的vue,需要實現Compiler類(用于模板編譯)、Watcher類(用于更新視圖)、Dep類(用于依賴收集)、Observer類(用于數據劫持)、Vue類(構造函數)等。
  • react自v16以后發生了很多變化,v16以后底層的“虛擬DOM”不再是簡單JSON數據了,React采用了最新的Fiber(雙向鏈表)的數據結構,作為“協調”(Diff)運算的基礎數據。React背后還提供了強大的 react-reconciler 和 scheduler 庫實現Fiber鏈表的生成、協調與調度。相比vue組件,react在較大組件方面的性能更高。如果要手寫一個簡易版本的React,其核心要實現以下功能,createElement(用于創建元素)、createDOM/updateDOM(用于創建和更新DOM)、render/workLoop(用于生成Fiber和協調運算)、commitWork(用于提交)等,如果還有支持Hooks,還得封閉Hooks相關的方法。
    (4)從社區發展和未來展望的角度講
  • vue生態繁榮,用戶基礎大。vue3.0和vite的誕生給vue生態增加了新的生命力,同時也給vue開發者帶來了空前的挑戰。vue3.0眾多新特性,以組合API、更友好地支持TS為代表,使得vue3.0的寫法更加靈活。上手vue3.0并不難,但,要想寫出健壯的可維護性更強的vue3.0代碼,并不容易,這需要廣大的前端開發者有更強大的前端基礎功,對MVVM有深刻的理解和沉淀。
  • react生態穩步向前,背后有強大的Facebook開發團隊,從類組件編程向Hooks編程的轉化指明了前進的方向。React(v18)呼之欲出,讓前端開發者對React更具信心。在國內,阿里系的React開源項目繁榮,給以開發者足夠的信心,至少三五年內深耕React仍然大有可為。

總結

以上是生活随笔為你收集整理的前端面试题:谈一谈vue和react的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。