ReactJS vs Angular 5 vs Vue.js - 哪一個框架更好?

譯者按: 在全球大範圍看,React和Angular依然遙遙領先,Vue.js這位後起之秀還需努力作到全球化!前端

爲了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原做者全部,翻譯僅用於學習。vue

前一陣子,咱們寫了一篇文章將Angular 2和React作了對比。在那篇文章中,咱們列舉了它們各自的優缺點,當時咱們針對特定需求作適當選型也提供了建議。那麼,2018年又有什麼新的變化呢?react

JavaScript框架的更新節奏能夠說突飛猛進,咱們能夠看到Angular不停地在發佈新的版本,ReactJS和Vue.js也不甘落後。咱們來看看最近5年Google的搜索趨勢。圖中藍色、紅色和黃色分別表示Angular、React和Vue.js。小程序

在2013-2014年間,React和Angular的熱度略微有些許差異。以後,它們之間的差距逐漸拉大。從2016年中期開始,React開始增加,逐漸接近Angular的熱度。Vue.js框架一直處於墊底狀態,不是很流行。不過呢,也有逐漸轉熱的趨勢,我相信它會愈來愈熱門。微信小程序

總的來講,React和Angular一直保持着相對一致的發展步調。若是要我嘗試作個預測,那麼React會持續升高,Angular有所下滑。Vue.js依然不是很明晰,不過因爲其框架的簡潔性,發展也不錯。瀏覽器

咱們同時也分析了世界範圍內前端招聘對框架要求的數據。咱們從Indeed.com得到超過60,000工做信息,獲得以下的分佈圖。前端框架

根據咱們的分析,咱們決定分享咱們對每個框架的優勢和缺點的理解,但願能夠幫助專業人士或則工程師作框架選型。微信

Angular 5

Angular是一個從2009年就開始推出JavaScript MVVM框架,對於構建高度可交互的網頁應用很是方便。app

優勢

  • 新特性:RXJS,快速編譯(3秒內),新的HttpClient;
  • 詳細的文檔幾乎涵蓋了全部必須的信息,你甚至不須要向同事諮詢。不過,你須要更多的時間去學習;
  • 數據雙向綁定,能夠減小出錯的風險;
  • MVVM(Model-View-ViewModel)使得開發者能夠針對同一個App模塊同時開發;
  • 依賴注入使得模塊化和模塊中組件引入更加方便;

缺點

  • 與生俱來的複雜的語法;好在Angular 5使用TypeScript 2.4,已經簡單多了;
  • 遷移問題:從低版本升級到新版本的時候,不兼容致使遷移成本高。

使用Angular 5的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。框架

ReactJS

ReactJS是一個Facebook在2013年開源的JavaScript庫,能夠很是方便地構建大型網頁應用。

優勢

  • 易於學習:因爲語法十分簡潔,和Angular相比,React要容易得多。工程師只須要重溫一下HTML的基本知識就足夠。根本不須要像Angular同樣,還要深度學習TypeScript。
  • 高度的靈活性;
  • 虛擬DOM將HTML,XHTML、或則XML的文檔格式化成樹形結構,這樣瀏覽器能夠更容易理解;
  • 結合ES6/7,React能夠很容易寫出各類酷炫代碼;
  • Downward數據綁定,也就是說父節點的數據不會受到孩子節點的影響;
  • 100%的開源,天天都有來自全世界無數的開發者的更新和改進;
  • 絕對的輕量級,由於數據處理既能夠在用戶端,也能夠在服務端;
  • 版本遷移很是容易,Facebook提供了"codemods"來自動化這一過程。

缺點

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

使用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。

Vue.js

Vue.js是一個2013年誕生的前端框架,很是適合用於構架很是靈活的UI和複雜的單頁面應用。

優勢

  • 強化的HTML,也就是說Vue.js有着不少和Angular類似的特色。
  • 詳細的文檔,Vue.js有着超級友好的文檔,開發者能夠快速的學會,這將會節省不少時間;
  • 可適用性:你能夠很快地從其它框架轉移到Vue.js,由於它和Angular以及React都有必定的類似性;
  • 很是棒的整合性:Vue.js能夠同時用於單頁面應用和更加複雜的網頁應用。主要在於你能夠用它編寫很小的可交互部件,而後能夠很容易地整合到現有的項目中而不會影響到整個系統;
  • 可擴展性:Vue.js能夠用於快速開發大型複用模板;
  • 體積小:Vue.js只有20KB左右的大小,使得其速度和靈活性相對於其它框架都好很多。

缺點

  • 資源匱乏:Vue.js依然在整個市場中只佔有很小的比例,因此相應的資源、知識要少不少;
  • 靈活性帶來的風險:有時候,將其整合到大型項目的時候會有一些問題,可是你不見得可以找到解法;
  • 來自中國:許多的元素和描述依然使用中文。這對於開發中會引入一些複雜性,好在愈來愈多的相關資料已經被翻譯成英文。

使用Vue.js的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。

結論

對於一個真正的工程師,選用什麼框架並無多大的區別,由於你只須要花時間去學習和熟悉它們。咱們公司裏面有精通ReactJS和Angular2/4/5的專家,Vue.js也即將被列入。每個框架都有各自的優勢和缺點,因此主要是看本身的應用場景下哪一個框架最適合。

關於Fundebug

Fundebug專一於JavaScript、微信小程序、微信小遊戲,Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了5億+錯誤事件,獲得了衆多知名用戶的承認。歡迎免費試用!

相關文章
相關標籤/搜索