Vue(MVVM)、React(MVVM)、Angular(MVC)對比


前言

昨天阿里內推電面一面,面試官了解到項目中用過Vue,就問為什么前端框架使用Vue而不適用其他的框架,當時就懵了。因為只用過Vue,不了解其他兩個框架,今天就趕緊去了解一下他們之間的區別。大家發現如果本文中哪個地方不對,歡迎來訪。

React與Vue對比

  1. 相似點:
    1. 使用 Virtual DOM
    2. 提供了響應式 (Reactive) 和組件化 (Composable) 的視圖組件。
    3. 將注意力集中保持在核心庫,而將其他功能如路由和全局狀態管理交給相關的庫。
  2. 區別:
    1. 在 React 應用中,當某個組件的狀態發生變化時,它會以該組件為根,重新渲染整個組件子樹。如要避免不必要的子組件的重渲染,你需要手動實現;在 Vue 應用中,組件的依賴是在渲染過程中自動追蹤的,所以系統能精確知曉哪個組件確實需要被重渲染,開發者不需要考慮組件是否需要重新渲染之類的優化。
    2. 在React中,一切都是JavaScript,所有的組件的渲染功能都依靠 JSX。JSX 是使用 XML 語法編寫 JavaScript 的一種語法糖。你可以使用完整的編程語言 JavaScript 功能來構建你的視圖頁面;在Vue中有自帶的渲染函數,Vue也支持JSX,Vue官方推薦使用模板渲染視圖。組件分為邏輯類組件和表現類組件。
    3. 組件作用域內的CSS。CSS 作用域在 React 中是通過 CSS-in-JS 的方案實現的;在Vue中是通過給style標簽加scoped標記實現的。
    4. Vue 的路由庫和狀態管理庫都是由官方維護支持且與核心庫同步更新的。React 則是選擇把這些問題交給社區維護,因此創建了一個更分散的生態系統。

Angular與Vue對比

AngularJS 是 Vue 早期開發的靈感來源,但AngularJS 中存在的許多問題,在 Vue 中已經得到解決。

  1. 區別:
    1. 模塊化和靈活性。它允許你以希望的方式組織應用程序,而不是在任何時候都必須遵循 AngularJS 制定的規則。
    2. AngularJS 使用雙向綁定,Vue 在不同組件間強制使用單向數據流。這使應用中的數據流更加清晰易懂。
    3. 指令與組件 (不太懂)
      在 Vue 中指令和組件分得更清晰。指令只封裝 DOM 操作,而組件代表一個自給自足的獨立單元——有自己的視圖和數據邏輯。在 AngularJS 中,每件事都由指令來做,而組件只是一種特殊的指令。
    4. 性能上
      Vue 有更好的性能,並且非常非常容易優化,因為它不使用臟檢查;在 AngularJS 中,當 watcher 越來越多時會變得越來越慢,因為作用域內的每一次變化,所有 watcher 都要重新計算。並且,如果一些 watcher 觸發另一個更新,臟檢查循環 (digest cycle) 可能要運行多次。

注:
本文內容參考:Vue官方文檔
如需轉載請注明出處:https://www.cnblogs.com/zhuchenglin/p/9485879.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM