前言
昨天阿里內推電面一面,面試官了解到項目中用過Vue,就問為什么前端框架使用Vue而不適用其他的框架,當時就懵了。因為只用過Vue,不了解其他兩個框架,今天就趕緊去了解一下他們之間的區別。大家發現如果本文中哪個地方不對,歡迎來訪。
React與Vue對比
- 相似點:
- 使用 Virtual DOM
- 提供了響應式 (Reactive) 和組件化 (Composable) 的視圖組件。
- 將注意力集中保持在核心庫,而將其他功能如路由和全局狀態管理交給相關的庫。
- 區別:
- 在 React 應用中,當某個組件的狀態發生變化時,它會以該組件為根,重新渲染整個組件子樹。如要避免不必要的子組件的重渲染,你需要手動實現;在 Vue 應用中,組件的依賴是在渲染過程中自動追蹤的,所以系統能精確知曉哪個組件確實需要被重渲染,開發者不需要考慮組件是否需要重新渲染之類的優化。
- 在React中,一切都是JavaScript,所有的組件的渲染功能都依靠 JSX。JSX 是使用 XML 語法編寫 JavaScript 的一種語法糖。你可以使用完整的編程語言 JavaScript 功能來構建你的視圖頁面;在Vue中有自帶的渲染函數,Vue也支持JSX,Vue官方推薦使用模板渲染視圖。組件分為邏輯類組件和表現類組件。
- 組件作用域內的CSS。CSS 作用域在 React 中是通過 CSS-in-JS 的方案實現的;在Vue中是通過給style標簽加scoped標記實現的。
- Vue 的路由庫和狀態管理庫都是由官方維護支持且與核心庫同步更新的。React 則是選擇把這些問題交給社區維護,因此創建了一個更分散的生態系統。
Angular與Vue對比
AngularJS 是 Vue 早期開發的靈感來源,但AngularJS 中存在的許多問題,在 Vue 中已經得到解決。
- 區別:
- 模塊化和靈活性。它允許你以希望的方式組織應用程序,而不是在任何時候都必須遵循 AngularJS 制定的規則。
- AngularJS 使用雙向綁定,Vue 在不同組件間強制使用單向數據流。這使應用中的數據流更加清晰易懂。
- 指令與組件 (不太懂)
在 Vue 中指令和組件分得更清晰。指令只封裝 DOM 操作,而組件代表一個自給自足的獨立單元——有自己的視圖和數據邏輯。在 AngularJS 中,每件事都由指令來做,而組件只是一種特殊的指令。 - 性能上
Vue 有更好的性能,並且非常非常容易優化,因為它不使用臟檢查;在 AngularJS 中,當 watcher 越來越多時會變得越來越慢,因為作用域內的每一次變化,所有 watcher 都要重新計算。並且,如果一些 watcher 觸發另一個更新,臟檢查循環 (digest cycle) 可能要運行多次。
注:
本文內容參考:Vue官方文檔
如需轉載請注明出處:https://www.cnblogs.com/zhuchenglin/p/9485879.html