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)
如何升级
现有项目:使用 React Native Upgrade Helper 查看版本间的代码变更。
新功能:社区 CLI 项目可以尝试实验性的 upgrade-react-native AI 辅助升级工具。
新建项目:
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 官方博客整理,如有疑问请参考官方文档。
最后,祝各位读者马年大吉,马上暴富,马上有钱,马上行大运!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/276642.html