React Native 0.72 近日正式发布,这个版本为 Metro 增加了备受用户期待的功能、更好的错误处理,以及其他开发者体验的改进。
新的 Metro 功能
Symlink 支持(测试版)
(资料图)
包导出支持(测试版)
启用测试版功能
要在项目中启用这些功能,请更新应用的 metro.config.js
文件并设置 resolver.unstable_enableSymlinks
或 resolver.unstable_enablePackageExports
选项。
新增 metro.config.js
设置
在 React Native 0.72 中,改变了React Native CLI中Metro的配置加载设置。请更新项目的metro.config.js
文件,以匹配模板的版本。
开发者体验的改进
不再有样式属性无效的红框
在此版本之前,在样式表中提供无效的样式属性将导致出现红框,对于一个相对低风险的错误来说,它打乱了开发者的工作流程
在 0.72 中,我们放宽了这一设定,使其以静默方式失败。
Hermes的更好的错误可读性
当调用未定义的可调用程序时,Hermes 增加了一个更好的错误信息。
改进 React Native CLI 的错误输出
0.72 与 React Native CLI v11 一起更新,其中包括减少重复、澄清措辞、减少冗长的堆栈跟踪,以及在以下命令init
、run-android
和run-ios
中添加相关文档的深度链接。
Hermes中更快的编译和JSON解析
Hermes 已经改善了编译时间,通过改进 Hermes 使用的去重算法,编译速度加快了97%。这些改进将有利于捆绑许多对象的应用程序的构建时间。
对 JSON 解析的多项优化也已落地,对使用 redux-persist 等严重依赖 JSON 操作的库的应用有利。
Hermes 中的更多 ECMAScript 支持
Hermes 中对以下规范的支持已经在 React Native 0.72 中登陆:
为 Array, TypedArray 和 String 添加prototype.at
支持 实施 well-formed JSON.stringify 以防止不符合 Unicode 的字符串 新架构更新
新架构目前是实验性的,为了使更新集中于他们的目标受众,我们将在 0.72 和未来的版本中把新架构的更新转移到专门的工作组。这一变化也将允许更频繁的更新。
移除废弃的组件
以下组件已经从 0.72 版的 React Native 中移除:
Slider 被 @react-native-community/slider 所取代 DatePickerIOS 被 @react-native-community/datetimepicker 所取代 ProgressViewIOS 被 @react-native-community/progress-view 所取代更多详情可查看:https://github.com/facebook/react-native/releases/tag/v0.72.0