重磅!React Native 0.84 发布:默认开启 Hermes V1 与 iOS 预编译,构建速度起飞!

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 属性(hashhostpathname 等)和 URLSearchParams 方法,更接近 Web 标准。


⚠️ 破坏性变更提醒

  1. iOS 图片组件 :修复了 ImageResponseObserverCoordinator 的崩溃问题,但改变了 RCTImage 观察者 API 的对象声明(可能影响 react-native-svg 等库)
  2. Android :移除了 BridgeDevSupportManager
  3. C++JSBigString 直接实现 jsi::Buffer,移除了 BigStringBuffer 中间层
  4. 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-native AI 辅助升级工具。

新建项目:

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 官方博客整理,如有疑问请参考官方文档。

相关推荐
lbb 小魔仙2 小时前
鸿蒙跨平台实战:React Native在OpenHarmony上的Font字体加载管理详解
react native·华为·harmonyos
lbb 小魔仙3 小时前
鸿蒙跨平台实战:React Native在OpenHarmony上的Font自定义字体注册详解
react native·华为·harmonyos
lbb 小魔仙3 小时前
鸿蒙跨平台实战:React Native在OpenHarmony上的PixelFormat图片格式处理
react native·华为·harmonyos
zh_xuan3 小时前
React Native Demo
android·javascript·react native·ts
果粒蹬i3 小时前
鸿蒙跨平台实战:React Native在OpenHarmony上的AccessibilityInfo辅助功能开关详解
react native·华为·harmonyos
果粒蹬i4 小时前
鸿蒙跨平台实战:React Native在OpenHarmony上的AccessibilityInfo屏幕阅读器适配详解
react native·华为·harmonyos
星空22232 天前
【HarmonyOS】day39:React Native实战项目+智能文本省略Hook开发
react native·华为·harmonyos
星空22232 天前
【HarmonyOS】day40:React Native实战项目+自定义Hooks开发指南
react native·华为·harmonyos
Bowen_J3 天前
HarmonyOS 主流跨平台开发框架对比: ArkUI、Flutter、React Native、KMP、UniApp
flutter·react native·harmonyos