react-native中热重载和快速刷新的区别

IT技术 reactjs react-native react-native-android react-native-ios
2021-05-08 03:04:21

用于反映代码更改react-native 0.61之前的版本中,我们有两个选择。

  1. 实时重新加载(检测到一些变化时重新加载应用程序)
  2. Hot Reload(无需重新加载即可反映更改)

但是在0.61版本中,删除了这两个(Live Reload、Hot Reload),引入了一个名为Fast Refresh的新开发功能,它的工作原理也类似于Hot Reload 所以现在的问题是Fast RefreshHot Reload之间的根本区别是什么.

2个回答

“热重载”功能被破坏。对于功能组件,它不能可靠地工作,经常无法更新屏幕,并且对拼写错误和错误没有弹性。他们听说大多数人都关闭了它,因为它太不可靠了。

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

  • Fast Refresh 完全支持现代 React,包括函数组件和 Hooks。
  • 快速刷新在输入错误和其他错误后优雅地恢复,并在需要时回退到完全重新加载。
  • 快速刷新不执行侵入性代码转换,因此它足够可靠,默认情况下处于启用状态。

从官方文档中阅读更多内容

当我们更改组件(例如样式)时,快速刷新非常有用。它只会在当前页面上加载应用程序。大多数编辑应该在一两秒钟内可见。

热重载是为了保持应用程序运行并注入您在运行时编辑的文件的新版本。

用于快速刷新如果我们编辑一个只导出 React 组件的module,Fast Refresh 将仅更新该module的代码并重新渲染您的组件。

如果我们使用非 React 组件的导出编辑module,Fast Refresh 将重新运行该module和导入它的其他module。

如果我们编辑由 React 树之外的module导入的文件,Fast Refresh 将回退到完全重新加载

换句话说,它比热重载更好更完整