最近,高级软件工程师Ben Sangster 宣布Etsy 已从React v15.6 迁移到Preact 10。 Preact 是MIT 许可下的开源软件,比React 更小、更快。 Sangster 认为,使用Preact 可以降低迁移大型代码库的风险。
将所有React v15.6 替换为Preact。这是一个巨大的胜利。迁移到Preact 比迁移到v16 容易得多(更不用说重写和重构旧代码了)。
Sangster 表示,过渡是无缝的,React v15.6 和Preact 可以使用完全相同的客户端,对于Etsy 开发人员来说真正重要的改进是他们可以开始编写更现代的React。
在相关博客文章中,Sangster 详细介绍了Etsy 转向Preact 而不是最新版本React 的三个原因。
首先,采用Preact 可以最大限度地降低迁移风险。开发人员通常喜欢React 16 中的新功能(例如React 16.8 中的错误边界、片段、错误堆栈跟踪、自定义DOM 属性和钩子),并且React 16.0 文档引入了一些小的兼容性破坏,尽管提到了这些更改,但还是存在一些问题。还有一些开发人员报告了这些问题。迁移的痛苦。 Michael Greer 在Discord 上写道:“并不是所有的包错误都很容易找到,这才是真正的痛苦所在。我们遇到了一个错误,我们花了两天时间才找到相应的库。你也可以。你可能会遇到同样的问题。”此外,路由库是许多Web 应用程序的关键依赖项,也可能导致迁移错误。
Sangster 解释说,总体而言,Preact 可以更好地控制迁移风险。
Preact 的API 与React 兼容,因此您无需进行任何更改。 Preact 注重与React v15 和React v16 的兼容性,可以轻松迁移到Preact v10.4.2。从开发人员工具的角度来看,采用Preact 似乎不存在重大障碍。
其次,Etsy 的前端系统团队已经在使用Preact。在Etsy 中统一使用Preact 可以让开发人员的生活变得更轻松。
同样,Preact 的包大小(Preact v10.4.5 中为4KB)比React 的包大小(添加React 和React-dom 后,React v16.13.1 中为38.5KB)小6 倍。随着JavaScript 的增长,它会增加延迟(变为交互所需的时间)并消耗更多的内存和CPU。
Sangster 说:“我们有很多旧的“无主”代码和过时的库,升级到React 16 将引入一些我们需要解决的API 问题(特别是门户/遗留上下文/引用)。需要大量工作。相反,通过迁移到Preact,您可以将代码重构为最新版本,而无需同时升级组件和库。 ”
详细信息:https://github.com/mq2thez/blog/blob/main/upgrade-react-etsy/preact-vs-react.md
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84661.html