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

前言

昨天阿里內推電面一面,面試官瞭解到項目中用過Vue,就問爲何前端框架使用Vue而不適用其餘的框架,當時就懵了。由於只用過Vue,不瞭解其餘兩個框架,今天就趕忙去了解一下他們之間的區別。你們發現若是本文中哪一個地方不對,歡迎來訪。html

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官方文檔
如需轉載請註明出處:http://www.javashuo.com/article/p-bdpszoij-gg.htmlvue

相關文章
相關標籤/搜索