12.27 web前端開發ReactJS,AngularJS, Vue.js優劣對比分析

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

為了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。


web前端開發ReactJS,AngularJS, Vue.js優劣對比分析


JavaScript框架的更新節奏可以說日新月異,我們可以看到Angular不停地在發佈新的版本,ReactJS和Vue.js也不甘落後。我們來看看最近5年Google的搜索趨勢。圖中藍色、紅色和黃色分別表示Angular、React和Vue.js。

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

web前端開發ReactJS,AngularJS, Vue.js優劣對比分析

總的來說,React和Angular一直保持著相對一致的發展步調。如果要我嘗試做個預測,那麼React會持續升高,Angular有所下滑。Vue.js依然不是很明晰,不過由於其框架的簡潔性,發展也不錯。

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

web前端開發ReactJS,AngularJS, Vue.js優劣對比分析

根據我們的分析,我們決定分享我們對每一個框架的優點和缺點的理解,希望可以幫助專業人士或則工程師做框架選型。

Angular

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

優點

  • 新特性: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億+錯誤事件,得到了眾多知名用戶的認可。歡迎免費試用!


分享到:


相關文章: