React Native 团队刚刚发布了 0.84 版本,这是新年后的首个重大更新,带来了多项激动人心的改进。本文将为你详细解读这次更新的核心亮点,以及升级时需要注意的事项。
🎯 四大核心亮点
1. Hermes V1 正式成为默认 JavaScript 引擎
这是本次更新最重磅的变化!Hermes V1 现在成为 iOS 和 Android 的默认 JavaScript 引擎,取代了之前的版本。
对你的应用意味着什么?
- ✅ 性能自动提升:所有应用默认使用 Hermes V1,执行速度更快,内存占用更低
- ✅ 零迁移成本:如果你已经在使用 Hermes(0.70 版本后的默认选项),无需任何配置更改,自动升级
💡 背景知识:Hermes V1 在 0.82 版本中首次作为实验性功能引入,现在经过充分验证后正式转正。
需要回退? 虽然不建议,但如果确实需要,可以通过 package.json 覆盖或使用环境变量禁用。
2. iOS 预编译二进制文件默认启用
构建时间大幅缩短!
React Native 0.84 默认启用 iOS 预编译二进制文件。这意味着:
- 不再需要每次 clean build 都从源码编译 React Native 核心
- 预编译的
.xcframework会在pod install时自动下载使用
⚠️ 注意:如果需要从源码构建(例如禁用 Hermes V1),可设置
RCT_USE_PREBUILT_RNCORE=0
3. 旧架构组件持续移除
继 0.82 版本将新架构作为唯一运行时选项后,0.84 继续清理旧架构代码:
iOS 端:
- 旧架构代码不再包含在构建中,减少构建时间和应用体积
- 兼容层(Interop Layer)代码保留,确保现有应用正常运行
Android 端: 已移除以下旧架构类:
LazyReactPackage、CxxModuleWrapper、CallbackImpl、
BridgeDevSupportManager、LayoutAnimationController 等
4. Node.js 22 成为最低要求
React Native 0.84 要求 Node.js v22.11 或更高版本。这次升级让整个 React Native 工具链能够使用更多现代 JavaScript 特性。
建议使用 nvm 或 fnm 等版本管理工具来管理 Node 版本。
📦 其他重要更新
🔹 React 19.2.3 同步更新
包含 React 团队的最新修复和改进。
🔹 ESLint v9 Flat Config 支持
React Native 的 ESLint 配置现在支持 ESLint v9 的新配置格式,更容易采用最新工具链。
🔹 平台支持增强
- 新图片格式:支持 HEIC 和 HEIF 格式,方便处理现代相机输出
- Android 键盘事件 :新增
onKeyDown/onKeyUp支持,适用于硬件键盘和电视遥控器
🔹 无障碍功能改进
- 带
onPress的 Text 组件自动获得accessibilityRole="link" - Android 修复了回收视图的无障碍状态问题,屏幕阅读器不再播报错误状态
🔹 URL API 完善
补齐了标准 URL 属性(hash、host、pathname 等)和 URLSearchParams 方法,更接近 Web 标准。
⚠️ 破坏性变更提醒
- iOS 图片组件 :修复了
ImageResponseObserverCoordinator的崩溃问题,但改变了RCTImage观察者 API 的对象声明(可能影响react-native-svg等库) - Android :移除了
BridgeDevSupportManager - C++ :
JSBigString直接实现jsi::Buffer,移除了BigStringBuffer中间层 - JS:应用内元素检查器的旧版 Perf 和 Network 标签页已移除(功能已迁移至 React Native DevTools)
🙏 致谢
本次发布包含 650+ 提交 ,来自 95 位贡献者。特别感谢:
- Riccardo Cipolleschi:预编译 iOS 二进制文件和移除 iOS 旧架构
- Rob Hogan:Node.js 22 版本升级
- Fabrizio Cucci:Android 无障碍改进
- @pipopotamasu:ESLint v9 Flat Config 支持
🚀 如何升级
现有项目: 使用 React Native Upgrade Helper 查看版本间的代码变更。
💡 新功能 :社区 CLI 项目可以尝试实验性的
upgrade-react-nativeAI 辅助升级工具。
新建项目:
bash
npx @react-native-community/cli@latest init MyProject --version latest
Expo 用户: React Native 0.84 将在 expo@canary 版本中提供。下一个 SDK 56 将随 React Native 0.85 一起发布。
版本支持政策: 0.84 现在是最新稳定版本,0.81.x 已停止支持。
本文内容基于 React Native 官方博客整理,如有疑问请参考官方文档。