Angular5 - Vue.js -ReactJS 的區別和特點

weixin_34107955發表於2019-01-04

參考https://blog.fundebug.com/2018/07/09/react_vs_angular_vue/

Angular 5

Angular是一個從2009年就開始推出JavaScript MVVM 框架

優點

  • 新特性:RXJS(是一種針對非同步資料流程式設計工具,或者叫響應式擴充套件程式設計;Angular引入RxJS為了就是讓非同步可控、更簡單),Angular 5還可以快速編譯(3秒內),有新的HttpClient;
  • 詳細的文件幾乎涵蓋了所有必須的資訊,便於學習;
  • 資料雙向繫結,可以減少出錯的風險;
  • MVVM(Model-View-ViewModel),View的變化會自動更新到 ViewModel,ViewModel的變化也會自動同步到View上顯示(自動同步是因為ViewModel的屬性中實現了Observer,當屬性變更時能觸發相應的操作)使得開發者可以針對同一個App模組同時開發;
  • 依賴注入使得模組化和模組中元件引入更加方便;

缺點

  • 語法比較複雜;好在Angular 5使用TypeScript 2.4,已經簡化了很多
  • 遷移問題:從低版本升級到新版本的時候,不相容導致遷移成本高。

適用情況

由於Angular使用的是TypeScript,因此它更適合於單頁Web應用,應用程式體積較大,而且有著未來的擴充套件計劃的也適用Angular

ReactJS

ReactJS是一個Facebook在2013年開源的JavaScript庫

優點

  • 易於學習:由於語法十分簡潔
  • 元件化程度高具有高度的靈活性;
  • 虛擬DOM將HTML,XHTML、或則XML的文件格式化成樹形結構,這樣瀏覽器可以更容易理解;
  • 結合ES6/7,React可以很容易寫出各種酷炫程式碼;
  • Downward資料繫結,單向資料流,父節點的資料不會受到孩子節點的影響;
  • 100%的開源,每天都有來自全世界無數的開發者的更新和改進;
  • 絕對的輕量級,因為資料處理既可以在使用者端,也可以在服務端;
  • 版本遷移非常容易,Facebook提供了”codemods”來自動化這一過程。

缺點

  • 缺乏官方文件:ReactJS的快速開發使得文件的缺乏,眾多開發者的維護也使其缺乏一個系統化的思路;
  • React因為太靈活增加了決策成本而不好使;
  • 需要很長的時間去掌握,因為ReactJS需要你對如何將UI和MVC框架整合有一個足夠深度的理解。

適用情況

適用於對於靈活性要求勝過功能性專案,適合熟悉JavaScript的開發者,可以用來開發應用程式體積較大,而且有著未來的擴充套件計劃的專案

Vue.js

Vue.js是一個2013年誕生的前端框架

優點

  • 強化的HTML,有著很多和Angular相似的特點。
  • 有詳細的文件
  • 可適用性:它和Angular以及React都有一定的相似性;
  • 非常棒的整合性:Vue.js可以同時用於單頁面應用和更加複雜的網頁應用。可以用它編寫很小的可互動部件,可以很容易地整合到現有的專案中而不會影響到整個系統;
  • 可擴充套件性:Vue.js可以用於快速開發大型複用模板;
  • 體積小:Vue.js只有20KB左右的大小,使得其速度和靈活性相對於其它框架都好很多。
  • 程式碼整潔性好
  • Vue提供了最簡單的學習曲線,因此它是初學者的理想選擇

缺點

  • 資源匱乏:Vue.js依然在整個市場中只佔有很小的比例,所以相應的資源、知識要少很多;
  • 靈活性帶來的風險:有時候,將其整合到大型專案的時候會有一些問題,但是你不見得能夠找到解法;

適用情況

非常適合用於構架非常靈活的UI和複雜的單頁面應用,適合小團隊和小專案

相關文章