全文共2215字,预计学习时间6分钟。
来源:Unsplash
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 快4 倍。
来源:TodoMVC 基准
另外,如果您熟悉React,那么使用Preact 将会非常容易,因为它与React 大部分兼容。此外,使用Preact 有几个重要的优点。
-支持ES6 API(与React相同)。
· 强大的CLI支持快速项目设置
· 包含React 特有的其他高级功能。
· Preact 正在快速发展,拥有许多示例、广泛的文档和不断发展的社区。
尽管Preact 包含许多功能,但它也有一些缺点。但是,如果您需要构建基于性能的小型应用程序,Preact 是比React 更好的选择。
Inferno
Inferno 是另一个类似于React 的JavaScript UI 库。与Preact 一样,Inferno 也是使用与React 相同的API 构建的,但Inferno 的主要目的是快速且轻量级。尽管Inferno 基于React,但与React 和Preact 相比,它包含一些重要的功能/差异。
· 与React 相比,Inferno 非常小。压缩后的大小约为8KB,比Preact稍大。
· Inferno 不仅仅包括DOM。 Inferno 的DOM 内置于其核心中。
· Inferno-compact 帮助您使用各种React 库。
· Inferno 对功能组件使用生命周期方法。
由于本文主要是基于速度和性能比较,所以我们来看看Inferno 本身提供的几个JS 框架的基准比较。
来源:Inferno
如图所示,Inferno对于常见应用操作的基准值高于Preact和React。这些几乎与普通JS 类似。有关该基准测试系统的更多信息,请访问GitHub。使用Inferno 的其他好处包括:
· 非常快。
· 比React、Angular 和Vue 更轻。
· Inferno 包含其自己的服务器端渲染和路由功能。
· 常规样式属性可以与Inferno 样式一起使用。
· 使用您自己的架构构建应用程序,而不是局限于其他人的设计。
另一方面,它也有一些明显的缺点。与React 相比,Inferno 相对较新,因此其生态系统和社区仍在发展中。这需要花费大量时间来提供额外的库、支持等。
同样,Inferno 也不提供对hooks 的支持。虽然可以使用inferno-compact 来使用React 组件或包,但你的项目会更慢、更大。这样,Inferno 体验的质量就会受到影响。
来源:unsplash
本文的主要目的是比较React、Preact 和Inferno 框架的速度。正如你所看到的,Preact 和Inferno 中的大部分功能都是基于React 的。但在速度和性能方面,Preact 排名第一,Inferno 排名第二。
因此,如果您正在为需要闪电般性能的小型平台寻找类似React 的框架,那么Preact 或Inferno 是理想的选择。但是,您应该始终记住,React 是一个现成的框架,在很大程度上取代了Angular,因此没有办法将React 的功能与Preact 或Inferno 完全匹配。
React 在功能和原生支持方面仍然处于领先地位,但Preact 和Inferno 在速度方面更好。根据您的项目选择您需要的。
留言、点赞并关注我们
分享有关学习和开发人工智能的有用信息
如需转载,请在后台留言,并遵守转载规定。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84654.html