2020年,Vue.js會(huì)接管React嗎?
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)
前端框架一年比一年更受歡迎。
如今,人們很難想象沒有任何JavaScript框架參與的前端開發(fā)。
最近以來,谷歌發(fā)布的Angular和Facebook的React.js兩巨頭激烈對(duì)抗。盡管如此,2018年前端世界發(fā)生了重大變化,有一個(gè)更強(qiáng)大的玩家也加入了競(jìng)爭(zhēng)——Vue.js.
下面,我們就來看看Vue.js,預(yù)估一下它取代前端巨頭React的機(jī)會(huì)。
背景
在深入研究之前,將對(duì)兩個(gè)框架的一些基本信息進(jìn)行概述。
React由科技巨頭Facebook開發(fā)和維護(hù),以滿足其需求。長(zhǎng)期以來React一直是前端領(lǐng)域的主要參與者,提供長(zhǎng)期穩(wěn)定的支持。
Vue.js是由谷歌前員工尤雨溪?jiǎng)?chuàng)建的,他的目標(biāo)是開發(fā)一個(gè)可以將現(xiàn)有框架中的最佳特性集成在一起的框架。
核心差異
為了保持不偏不倚,React和Vue.js之間的區(qū)別建議在Vue.js文檔中查看,后者這很好的解決了這個(gè)問題。Vue.js文檔是由尤雨溪和React小組的丹·阿布拉莫夫合作完成的。
Vue和React都使用虛擬DOM,盡管它們都有不同的實(shí)現(xiàn)方法。
Vue.js和Recovery之間的主要區(qū)別是Vue.js使用帶有聲明性呈現(xiàn)的模板,而React使用JSX,這是一個(gè)相當(dāng)大的JS擴(kuò)展,允許在其中使用HTML。這意味著相比于Vue.js或Angular,React需要更復(fù)雜的執(zhí)行過程來完成更簡(jiǎn)單的任務(wù),到頭來還需要更多的時(shí)間來開發(fā)復(fù)雜的組件。
下面是一個(gè)簡(jiǎn)單的Vue登錄實(shí)現(xiàn)示例:
React的登錄實(shí)現(xiàn)示例:
同時(shí),Vue.js更高級(jí),并且具有較低的入口點(diǎn),因?yàn)樗恍枰钊肜斫鈐s核心來執(zhí)行。
React和Vue.js都適用于中小型項(xiàng)目。
流行性
React一直是JavaScript框架中受歡迎的領(lǐng)頭羊。根據(jù)節(jié)點(diǎn)包管理器(npm)的報(bào)告,React憑借48718個(gè)依賴項(xiàng)數(shù)量高居榜首,而Vue.js是第二流行的JavaScript框架,21575個(gè)依賴項(xiàng)數(shù)量是React的一半。盡管看2018年底的統(tǒng)計(jì)數(shù)據(jù)會(huì)發(fā)現(xiàn)Vue的依賴項(xiàng)增長(zhǎng)了2倍,而React的依賴項(xiàng)增加了一倍。
下載的數(shù)量也顯示了React越來越受歡迎,而Vue幾乎沒有改變。
根據(jù)當(dāng)前特定平臺(tái)工作的開發(fā)人員提出的問題的數(shù)量,堆棧溢出給出以下數(shù)據(jù):
盡管可以看到關(guān)于Vue.js的問題數(shù)量在增加,但毫無疑問的是,React仍然在領(lǐng)獎(jiǎng)臺(tái)的首位。
根據(jù)第四版的JavaScript“新星”預(yù)測(cè),每年在Github上增加的星星數(shù)量,2019年Vue排名第一。
這個(gè)統(tǒng)計(jì)數(shù)字相當(dāng)令人困惑,因?yàn)樗环仙鲜鋈魏螖?shù)字。也許Vue社區(qū)只是癡迷于GitHub的閃光點(diǎn)。
社區(qū)支持
依靠Github的統(tǒng)計(jì)數(shù)據(jù),可以得出即使沒有頂級(jí)公司的支持,Vue.js在開源社區(qū)中也很受歡迎。
Facebook的工程師們一直在致力于React的維護(hù)和編碼,改進(jìn)和投資,這使得React成為開發(fā)者世界中發(fā)展最快的工具。
靈活性和學(xué)習(xí)曲線
React最大的優(yōu)勢(shì)之一是靈活性。因?yàn)镽eact不是一個(gè)成熟的框架,而是一個(gè)庫,所以它也很容易學(xué)習(xí)。開發(fā)人員可以根據(jù)自身偏好添加任何庫,而不是按照固定的模式工作。MobX和Redux也在開發(fā)人員使用React支持狀態(tài)管理任務(wù)時(shí)被廣泛使用。
Vue.js也很靈活,對(duì)如何構(gòu)建應(yīng)用程序沒有任何限制。它還為各種構(gòu)建系統(tǒng)提供了官方支持,此外,學(xué)習(xí)過程不會(huì)花費(fèi)太多時(shí)間:熟悉諸如HTML和ES5JavaScript這些基礎(chǔ)知識(shí)是開始學(xué)習(xí)的唯一要求。
框架大小
框架的大小是直接影響項(xiàng)目生產(chǎn)率的一個(gè)重要標(biāo)準(zhǔn),框架越小,對(duì)項(xiàng)目越有利。如果將框架的大小四舍五入,React約為100 Kb,而Vue.js約為80 Kb。它們都具有相對(duì)較小的尺寸,這使得其便于小型應(yīng)用程序的開發(fā)。
用例
當(dāng)為一個(gè)項(xiàng)目選擇一項(xiàng)技術(shù)時(shí),知道這項(xiàng)技術(shù)應(yīng)用在哪也是至關(guān)重要的。
React.js應(yīng)用程序開發(fā):
Vue.js應(yīng)用程序開發(fā):
- Gitlab
- 9Gag
- Nintendo
- Grammarly
總而言之,最近React比Vue更受歡迎。React有強(qiáng)大而有影響力的導(dǎo)師對(duì)其進(jìn)行改進(jìn)和維護(hù),而Vue沒有。
但Vue.js和React.js提供了高度的靈活性、簡(jiǎn)單的學(xué)習(xí)曲線,并且兩者的尺寸都很小,選擇誰還看你的習(xí)慣。