阅读 2667

React Native 0.61 发布,带来了“快速刷新”功能

原文链接

更多好文,请关注公众号 知识小集 (ID: zsxjtip)

React Native 官方发布了 0.61 版本,其中包括“快速刷新”的全新重载体验。下面来看看官方对这次更新的说明。

快速刷新

当我们向 React Native 社区询问常见的痛点时,最重要的答案之一就是“热重载”功能出问题了。对于一些功能组件它无法可靠地运行,经常无法更新屏幕,并且对错别字和错误没有足够的响应。我们听说大多数人都关闭了它,因为它太不可靠了。

在 React Native 0.61 中,我们将现有的“实时重载”(保存时重载)和“热重载”功能统一为一个名为“快速刷新”的新功能。快速刷新是从头开始开发的,遵循以下原则:

• 快速刷新完全支持现代 React,包括功能组件和 Hooks。

• 快速刷新会在输入错误和其他错误后正常恢复,并在需要时降级为完全重新加载。

• 快速刷新不会执行侵入性代码转换,因此它足够可靠,可以默认打开。

要观看快速刷新的效果,请阅读原文观看视频。

试试看,让我们知道您的想法!如果愿意,可以在开发菜单中将其关闭(iOS 上为 Cmd + D,Android 上为 Cmd + M 或 Ctrl + M)。 打开和关闭它是即时的,因此您可以随时执行。

以下是一些快速刷新提示:

• 默认情况下,快速刷新会在函数组件(和Hooks!)中保留 React 本地状态。

• 如果您需要在每次编辑时重置 React 状态,则可以在具有该组件的文件中添加特殊的 // @refresh reset 注释。

• 快速刷新总是在不保留状态的情况下重新装载类组件。这样可以确保它可靠地工作。

• 我们总会在代码中犯错误!保存文件后,“快速刷新”会自动重试渲染。修复语法或运行时错误后,您无需手动重新加载应用程序。

• 在编辑过程中添加console.log或调试器语句是一种巧妙的调试技术。

请在GitHub上报告有关“快速刷新”的任何问题,我们将对其进行跟踪。

其它改进

• 修复了 use_frameworks! CocoaPods支持。在 0.60 中,我们进行了一些更新以默认情况下集成 CocoaPods。不幸的是,这破坏了使用 use_frameworks! 的构建。 该问题已在 0.61 中修复,可以更轻松地将 React Native 集成到需要使用动态框架进行构建的 iOS 项目中。

• 添加 useWindowDimensions Hook。这个新的 Hook 会自动提供并订阅维度更新,并且在大多数情况下可以用来代替 Dimensions API。

• React 已升级到 16.9。此版本弃用了 UNSAFE_ 生命周期方法的旧名称,其中包含对 act 的改进等。

破坏性更新

删除 React .xcodeproj: 在 0.60 中,我们通过 CocoaPods 引入了自动链接支持。我们还将 CocoaPods 集成到了 e2e 测试运行中,因此从现在开始,我们就有了将 RN 集成到 iOS 应用程序中的统一标准方法。这实际上弃用了 React .xcodeproj 支持,并且该文件已从 0.61 开始删除。 注意:如果您已经使用 0.60 自动链接,则不会受到影响。