上週在JavaScript框架中發生了一個相當重要的事情:前端三大之一的Vue.js超過React.js了在Github上“充滿星星的演出”的數目。
通過使用名為“ 星曆史(Star History)”的數據,我們可以看到,這一措施特別說明了React的歷史主導地位被暴漲的Vue所取代。
通常情況下,當框架的普及程度提高時,常引發關於哪個框架“真的”更受歡迎,哪個框架更強大以及更多大量爭論。
信號與實際使用
不要誤解我的意思,我喜歡Vue–我最近使用它遠遠超過了React–但是github星星更多的是衡量一個項目的“潮流”而不是實際使用。一個明顯的例子比較流行的Apache服務器和一個相對輕浮的JavaScript項目:
為了更好地了解Vue vs React的相對流行度,我們需要一些方法來衡量項目的實際使用情況。
使用NPM下載作為使用代理
沒有完美的測量方法 – 安裝和使用這些項目有很多種方法 – 但是NPM已經成為安裝JavaScript包的實際標準。
如果我們查看每個框架的核心軟件包的下載統計數據 – vue軟件包和react軟件包,應該給我們一個合理的實際使用。
為此,我使用了一個名為npm-stat.com的網站,該網站允許您生成可回溯到2015年2月的NPM軟件包的歷史下載圖。(這與NPM註冊管理機構報告下載數據的時間相同)。
數據:React仍然占主導地位
縱觀過去兩年的數據,我們可以看到,與github星星數據形成鮮明對比的是,根據NPM軟件包下載量來衡量,React仍然在實際使用方面佔據主導地位。
這並不是說Vue在採用方面表現不佳 – 事實上,Vue的倍數略有增加,從2016年6月的12:1(1.693M vs 141.5k)大約下降到剛剛2018年5月的比例為7:1(9.388M vs 1.374M)。但React仍然存在巨大的使用差距。
添加Angular一起比較
雖然上週的討論主要集中在React和Vue,但我們還要看看“三大”框架的其他成員,Angular。
由於Angular社區或多或少地分為“Angular.js”和“Angular”(版本2和更高版本,使用typescript),因此我們將這兩個添加到我們的查找中。
首先,就github星星而言:
我們可以看到Angular.js與React和Vue相比有點頭痛,但在2016年年中被React以“star power”超過,2017年被Vue超過。第二次迭代Angular已經趕上了Angular .js自2016年9月推出以來逐漸上升,但在受歡迎程度方面依然處於第四位。
Angular的NPM下載
查看Angular的的兩個變體的使用情況而不是“star power”可以告訴我們另一個故事。
*’angular’包是原始的Angular.js,而@ angular / core是新Angular的核心。
在使用方面,新的Angular在發布後立即從Vue和Angular.js中立刻冒出來,從那時起一直保持領先地位,儘管遠沒有接近React。
在此期間,Vue從2016年9月的Angular.js或Angular的下載量的大約1/3下降到僅僅通過Angular.js並在2018年5月達到Angular下載量的1/2。
總結:React仍然占主導地位,Vue越來越快
通過深入了解NPM下載統計數據,我們發現儘管圍繞Vue的瘋狂github星星大肆宣傳,但React仍然是JavaScript框架空間中的800磅大猩猩。它即將跨越每月1000萬的巨大下載量,並且一直以高速增長。
也就是說,Vue的粉絲沒有理由傷心。在過去的兩年中,Vue的增長速度比其他任何主流JavaScript框架都快,最近趕上了Angular.js,並逐漸縮小了它與Angular和React之間的差距。