JavaScript中有許多框架,且各有千秋。在過去的幾個月中,筆者一直在研究各種JavaScript框架及其差異。本文中,筆者將選擇三個框架,并討論構建快速Web應用程序的優秀框架。
筆者選擇了React、Preact和Inferno,它們是非常有名的框架。本文將討論這些框架的功能(能夠開發快速的Web應用程序)、優缺點、統計數據以及其他一些有趣的特點,這些特點將幫助你為項目選擇優秀的框架。
Preact
Preact聲稱是最輕量級的框架之一,大小為3kB。體積小并沒有限制其性能。它被認為是一個非常強大的框架,并且是React的有力競爭對手。
將Preact與React進行比較時,可以發現它們之間存在一些相似之處。但由于Preact的功能主要基于速度和性能,因此它們還有更多重要的區別。以下是Preact的一些主要功能,這些功能使其比React更快:
首先,Precat壓縮后大小約為3Kb。React壓縮后約為42KB。
盡管React擁有自己的綜合事件系統,該系統具有多種優點,但卻被認為非常繁重。Preact僅使用DOM API來實現合成事件系統的功能。
Preact比React-lite(React的簡化版本)具有更多功能。
Preact明顯比React快。筆者發現了這個很棒的速度比較機制,該機制在GitHub站點上托管。它可以通過添加、完成和刪除100個項目來比較框架速度。因此,筆者從中進行了基準測試,結果表明Preact比React快四倍。
另外,如果熟悉React,與Preact一起使用會非常容易,因為它與React很大程度上兼容。除此之外,使用Preact還有幾個重要的優點:
它支持ES6 API(與React相同)。
強大的CLI支持快速的項目設置
包含React獨有的其他高級功能。
Preact處于迅速增長中,出現了許多示例、大量文檔、不斷增長的社區等。
盡管Preact包含許多功能,但也有一些缺點。但如果需要構建基于性能的小型應用程序,那么Preact仍然是比React更好的選擇。
Inferno
Inferno是另一個JavaScript UI庫,類似于React。與Preact相似,Inferno也使用與React相同的API構建,但是Inferno的主要目的是變得快速、輕便。盡管Inferno基于React,但與React 和Preact相比,它包含一些重要的功能/差異:
與React相比,Inferno的體積非常小。壓縮后約為8KB,比Preact稍大。
Inferno不單獨包含DOM。Inferno的DOM內置于其核心中。
Inferno-compact可以幫助您使用各種React庫。
Inferno在功能組件上使用生命周期方法。
由于本文主要基于比較速度和性能,因此來看一下Inferno自身提供的關于一些JS框架的基準比較。
如圖所示,Inferno對于典型應用程序操作的基準值高于Preact和React的基準值。它們幾乎與Vanilla JS相似。可以在GitHub上找到有關此基準測試系統的更多詳細信息。以下是使用Inferno的其他一些優點:
速度極快。
比React、Angular和Vue更輕便。
Inferno包含其自己的服務器端渲染和路由功能。
可以將常規樣式屬性與Inferno樣式一起使用。
可以使用自己的體系結構來構建應用程序,而不是將其限制于其他人的設計。
另一方面,它也存在一些明顯的缺點。由于與React相比,Inferno相對較新,因此其生態系統和社區仍在發展。從而需要大量時間來提供其他庫、支持等。
同樣,Inferno不對Hooks提供支持。盡管可以使用inferno-compact來使用React組件或包,但是這會使項目變慢并且變大。這樣Inferno的優質體驗感會打折扣。
本文主要目的是比較React、Preact和Inferno框架的速度。可以看到,Preact和Inferno的大多數功能基于React。但是在速度和性能方面,Preact居首位,而Inferno則位居第二。
因此,如果正在為需要閃電般性能的小型平臺尋找類似React的框架,Preact或Inferno將是理想選擇。但必須始終牢記, React是已經幾乎取代了Angular的即成框架,因此無法將React與Preact或Inferno的功能完全匹配。
在功能和本機支持方面,React仍然位居榜首,而Preact和Inferno在速度方面具有優勢,根據項目選你所需即可。
責編AJX
-
Web
+關注
關注
2文章
1255瀏覽量
69339 -
javascript
+關注
關注
0文章
516瀏覽量
53793 -
reactjs
+關注
關注
0文章
4瀏覽量
4553
發布評論請先 登錄
相關推薦
評論