商务

查看最新的增强反应JS 17

虽然没有太多的事情强调在新的反应JS 17版本,有一些新的high-sway增强反应JS核心。

最新的增强

更令人兴奋的增强是反应JS编译的方式。让我们看一下编译代码的JSX组件,该组件使用一个旧版本的反应JS:

使用函数”的反应。createElement”, JS依赖性反应应该是可用的范围。首先你必须导入反应JS在每个组件。

一旦你升级到反应JS 17,你可以移除反应JS进口从组件的代码,如果只有JSX。

编译后的版本不需要进口的反应。在下图中可以看到,反应JS 17编译器进口一个新的依赖从“/ jsx-runtime反应,”负责JSX转换。

重要的是要理解,整体效果将是可见的,当你有更多的反应JS代码库中的组件。

为什么你需要移除反应JS进口吗

包大小减少

你编译打包输出将变得更小,当你移除反应JS导入。您需要删除反应JS从编译器的各个组件的进口取代反应JS的子模块,如下所示。

共享的组件更容易

这可能听起来不算多,但是当节点发布组件包管理器(NPM),您需要确保反应不是配置为一个“依赖”而是“peerDependency。“这降低了组件捆绑大小和阻止的情况下反应JS多次安装不同版本。

减少动态属性查找

JS 17不再使用“反应反应。createElement”JSX查找和消除需要一个动态属性。你可以找到在前端代码的编译版本。

然而,性能改进是最小的,你不会注意到差异,因为现代JavaScript引擎优化主要用于动态属性查找。

改变事件的代表团

反应在反应JS 17日JS将不再附加事件处理程序在文档级别。相反,它会将它们附加到根DOM容器将您的反应JS树呈现。

考虑附加一个onClick事件按钮反应JS像下面的例子:

在上面的代码中,JS等价,在编译时,会是这个样子:

JS反应然后高度一个处理程序/事件类型文档节点直接,而不是将它附加到最初宣布DOM节点。这就是所谓的事件委托。

在反应JS 17日,事件处理程序将不再是附加在文档级别,但是他们会被附加到DOM树呈现容器。

与这种变化反应JS 17日鸟巢现在安全应用程序构建具有不同反应JS版本。

打破更新变化

有一些新的突破与这个版本的变化。

浏览器看齐

JS的反应做出了一些更改相关事件系统:

  • “onScroll”事件不再泡沫。
  • “失去焦点事件”和“聚焦事件”事件已经转向使用本机内部“focusin”和“focusout”事件匹配现有的行为反应,并提供更多更好的信息。
  • “onClickCapture”现在利用实际浏览器捕获阶段的听众。

没有事件池

事件池优化已被删除从这个新版本的反应JS由于持续混乱和缺乏性能改进。

升级效应清理时间

这个新版本也让“useEffect”钩清理函数时机更加一致。

在反应JS 16中,清理函数同步运行的影响。在反应JS 17,清理效果函数总是异步运行——例如,如果组件是被卸载,清理后运行屏幕已经更新。

最新的版本是明显重要

的JSX变换是向后兼容的改变是最小反应升级JS 17。尽管大多数的这些改进不可见的现实世界中,同样重要的是要明白这些改进将加快未来版本。升级到JS 17反应会使你的代码库未来的证明,你不需要提醒自己保持反应JS导入你的JSX文件。在这升级的更多信息,今天联系我们的技术专家

留下一个回复

这个网站使用Akismet来减少垃圾邮件。学习如何处理你的评论数据

Kajal Bhanse

Kajal Bhanse Perficient公司技术顾问。她目前专注于前端技术如反应/回家的和CSS高级概念。她目前正在与猫作为前端开发人员团队。她喜欢寻求知识和探索最新的前端技术。

从这个作者

博客订阅每周消化:

报名
跟着我们
推特 Linkedin 脸谱网 Youtube Instagram