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















 
 
 













 
 
 
 