React vs Angular vs Vue.js:到底怎么選擇?
Javascript框架的開發速度非常快,這意味著今天我們經常更新Angular、React和另一個參與者Vue.js的版本。
我們分析了全球需要特定框架知識的開放職位數量。作為消息來源,我們采用Indeed.com并根據超過60,000個工作機會獲得以下分配。
考慮到以下數據,我們決定分享每個前端框架的主要優點和缺點,并幫助技術專業人員或工程師根據他們的開發需求選擇最合適的框架。
Angular的利弊
Angular是一個超級棒的JavaScriptMVVM框架,成立于2009年,非常適合構建高度交互的Web應用程序。
Angular的好處:
- 創建的Angular與Typescript一起使用。并且對它有特殊的支持。
- Angular-language-service- 允許在組件外部HTML模板文件中進行智能和自動完成。
- 新功能,例如來自CLI的一代基于Angular的npm庫,基于Angular的WebComponents的生成和開發。
- 詳細的文檔,允許為個人開發人員獲取所有必要的信息,而無需詢問他的同事。但是,這需要更多的時間進行學習。
- 單向數據綁定,可為應用程序啟用單一行為,從而最大限度地降低可能出錯的風險。
- MVVM(Model-View-ViewModel),允許開發人員使用同一組數據在同一個應用程序部分上單獨工作。
- 通常使用模塊和模塊化依賴注入與組件相關的功能。
- 專為最佳項目可擴展性而創建的結構和體系結構
Angular的缺點:
- 與React和Vue.js相比,各種不同的結構(注射器,組件,管道,模塊等)使得學習起來有點困難,React和Vue.js只考慮了“組件”。
- 根據不同的基準測試,性能相對較慢。另一方面,它可以通過利用所謂的“ChangeDetectionStrategy”輕松解決,它有助于手動控制組件的渲染過程。
React的利弊
React于2013年由Facebook開源,非常適合構建任何規模的現代單頁應用程序。
React的好處:
- 由于其簡單的設計,使用JSX(類似HTML的語法)進行模板化和高度詳細的文檔,因此易于學習。
- 開發人員花費更多時間編寫現代JavaScript,而不必擔心特定于框架的代碼。
- 非常快,禮貌的React的虛擬DOM實現和各種渲染優化。
- 對服務器端呈現的強大支持,使其成為面向內容的應用程序的強大框架。
- 借助`create-react-app`應用程序生成器,支持一流的漸進式Web應用程序(PWA)。
- 數據綁定是單向的,意味著更少的不必要的副作用。
- Redux是在React中管理應用程序狀態的最流行的框架,易于學習和掌握。
- React實現了功能編程(FP)概念,創建了易于測試和高度可重用的代碼。
- 使用Microsoft的TypeScript或Facebook的Flow可以使應用程序類型安全,兩者都具有對JSX的本機支持。
- 在版本之間遷移通常非常容易,Facebook提供“codemods”來自動化大部分過程。
- 在React中學到的技能可以(通常直接)應用于React Native開發。
React的缺點:
- React是不受干擾的,讓開發人員可以選擇最好的開發方式。這可以通過強有力的項目領導和良好的流程來解決。
- 社區在React中編寫CSS的最佳方式上有所區別,在傳統樣式表(CSS模塊)和CSS-in-JS(即Emotion和StyledComponents)之間進行劃分。
- React正逐漸遠離基于類的組件,這可能成為開發人員更容易使用面向對象編程(OOP)的障礙。
- 最初將模板與邏輯混合(JSX)可能會讓一些開發人員感到困惑。
Vue.js的優點和缺點
Vue.js于2013年推出,非常適合創建高適應性的用戶界面和復雜的單頁面應用程序。
Vue.js的好處:
- 賦予HTML權力。這意味著Vue.js與Angular有許多相似的特性,這有助于通過使用不同的組件來優化HTML塊處理。
- 詳細文檔。Vue.js具有非常周密的文檔,可以為開發人員設置學習曲線,并且僅使用HTML和JavaScript的基本知識就可以節省大量時間來開發應用程序。
- 適應性強。它提供了從其他框架到Vue.js的快速切換周期,因為它在設計和架構方面與Angular和React相似。
- 很棒的整合。Vue.js可用于構建單頁面應用程序和更困難的應用程序Web界面。主要的是,較小的交互式部件可以輕松集成到現有基礎設施中,而不會對整個系統產生負面影響。
- 大規模。Vue.js可以幫助開發相當大的可重用模板,根據其簡單的結構,可以在沒有為其分配額外時間的情況下制作模板。
- 小巧的尺寸。Vue.js的重量可以保持在20KB左右,保持其速度和靈活性,與其他框架相比,可以實現更好的性能。
Vue.js的缺點:
缺乏資源。與React或Angular相比,Vue.js的市場份額仍然很小,這意味著該框架中的知識共享仍處于起步階段。
過度靈活的風險。有時,Vue.js在整合到大型項目時可能會遇到問題,但仍然沒有可能的解決方案經驗,但它們肯定會很快到來。
結論
對于真正的工程師來說,選擇哪個框架沒有太大的區別,因為它只需要一些時間來適應新的框架。在我們公司,我們在React和Angular中積累了大量專業知識,但Vue.js也在其中。每個框架都有自己的優點和缺點,這意味著在產品開發過程中每個案例都應該有正確的選擇。
原文:https://medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d