為何React能成為2021年JavaScript優(yōu)秀框架?
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
每一個開發(fā)人員或軟件工程師在開始他們的職業(yè)生涯時,都必須面對一個問題:首先要學習哪種語言、框架或工具?
要回答這個問題有點困難,在軟件開發(fā)行業(yè)中有大量可用的語言和框架。JavaScript已經(jīng)成為大多數(shù)開發(fā)流程的支柱,所以我想對三種基于JavaScript的框架進行比較,我選擇的是Angular、React和Vue三種框架。
StackOverflow調(diào)查
圖源:Stack Overflow
Stack Overflow就最受歡迎的框架進行調(diào)查,調(diào)查結(jié)果顯示,React和Angular分別排在第二和第三位。去年,Angular擊敗React占據(jù)領(lǐng)先地位。但如果考慮到專業(yè)開發(fā)人員的反饋,Angular仍然排在第二位,而React排在第三位。此外,盡管Vue發(fā)展迅速,但該框架在評級中僅排名第七。
NPM 趨勢
圖源:NPM Trends
這張NPM Trends圖表向我們展示了一段時間內(nèi)每個框架的下載數(shù)量。上圖顯示了過去一年的數(shù)據(jù),我們可以看到React在這方面遙遙領(lǐng)先于它的競爭對手。Vue的下載量也在與日俱增,目前保持在150萬左右。
NPM Trends的另一個特點是,它同樣顯示來自GitHub的數(shù)據(jù)。在下圖中,你可以看到每個框架的復(fù)制克隆項目(forks)、收藏(stars)和事務(wù)卡片(issues)的數(shù)量。
圖源:NPM Trends
JavaScript狀態(tài)報告
2019年JavaScript狀態(tài)報告包括JavaScript的另一個報告生成平臺,你可以在那里找到各種比較報告(https://2019.stateofjs.com/front-end-frameworks/)。下面這張圖就是我從那里找到的,顯示了用戶的反應(yīng),例如他們是否會再次使用該框架與是否知道這項技術(shù)等等。
圖源:https://2019.stateofjs.com/front-end-frameworks/
正如我們所看到的,比起Angular,大多數(shù)用戶可能還是會使用React和Vue。
選擇Angular的理由
圖源:https://2019.stateofjs.com/front-end-frameworks/angular/
對我來說,Angular開啟了我的軟件開發(fā)之旅,我并不后悔我的決定。與其他兩個框架相比,Angular更成熟,并且有一個圍繞Angular構(gòu)建的大型社區(qū)。除了是著名的MEAN堆棧的一部分,Angular還有其他做得很好的地方,比如雙向數(shù)據(jù)綁定、依賴注入、MVC框架、Angular CLI、TypeScript支持、指令等等。
但隨著React和Vue等競爭對手的崛起,Angular在過去幾年失去了人氣。作為一個重量級的框架,Angular的更新無法滿足用戶的期望,SEO支持有限和學習難度高等因素都極大地影響了Angular的普及。這就是為什么如今人們更傾向于選擇Vue和React。
但是Angular仍然用于支持許多流行的網(wǎng)站和web應(yīng)用程序,比如Guardian、Upwork、PayPal和Sony,它們都是重要的網(wǎng)站,Angular在這方面很好地證明了自己。Angular主要在以下情況下使用:
- 大規(guī)模應(yīng)用程序
- 如果你需要一個可伸縮的架構(gòu)
- 如果你喜歡TypeScript
- 實時應(yīng)用程序的創(chuàng)建
選擇React的理由
圖源: https://2019.stateofjs.com/front-end-frameworks/react/
根據(jù)JavaScript狀態(tài)報告,React已經(jīng)連續(xù)第三年在所有評級中位居第一。React是Facebook于2013年發(fā)布的,其目的是將用戶界面劃分為一組組件,簡化開發(fā)過程。可以進行本地開發(fā)是React的主要優(yōu)勢之一,而大型社區(qū)、Facebook的支持、飽和的生態(tài)系統(tǒng)、更優(yōu)質(zhì)的性能、可重復(fù)使用的組件和SEO友好性也是其優(yōu)勢。
但是突然的更新可能會在開發(fā)人員中引起討論,因為他們不得不更新他們的工作,防止出現(xiàn)兼容問題。使用JSX和缺少文檔是React的其他一些主要缺點。React更適用于以下情況:
- 創(chuàng)建SPA或跨平臺應(yīng)用程序
- 開發(fā)小型企業(yè)級應(yīng)用程序
我們?yōu)槭裁匆x擇Vue?
Vue是近些年來的新星,它很快從一個普通的框架變成了最受專業(yè)人士喜愛的框架。
圖源:https://2019.stateofjs.com/front-end-frameworks/vuejs/
由于輕量級的框架、詳細的文檔、響應(yīng)速度快、可重復(fù)使用、TypeScript支持和簡單的學習曲線等特性,Vue發(fā)展迅猛。
Vue有許多特別的方面,有些甚至看起來是缺點。例如,Vue非常靈活,然而有時對于擁有大量開發(fā)人員的團隊來說,它可能過于靈活了。
如今,這種框架在亞洲市場需求量很大。但是使用Vue也有一些缺點,比如對大型項目缺乏支持,社區(qū)規(guī)模小。但在一些特定的情況下,Vue可能是你的最佳解決方案:
- 構(gòu)建規(guī)模小、輕重量級的應(yīng)用程序(例如Grammarly)
- 構(gòu)建智能、高性能應(yīng)用程序
- 一個應(yīng)用程序進入市場的初期
圖源:unsplash
綜上,React將是2021年最適合學習的框架,Vue緊隨其后。但Angular很有可能奪回第二名,因為它很久以來位居第二。所以如果你是一名Angular開發(fā)者,我建議你在接下來的日子里學習React。
但2021年肯定不是這場競爭的終點,這場競爭將持續(xù)下去,或許還會加入新的競爭者。