网易首页 > 网易号 > 正文 申请入驻

ReactNative0.82发布:全面迈入新架构时代,这些新特性值得关注!

0
分享至

2025年10月8日,React Native 团队正式推出 React Native 0.82 版本。这一版本堪称里程碑——它是首个完全基于新架构运行的 React Native 版本,标志着框架发展进入全新阶段。未来版本中,团队还将逐步移除旧架构的剩余代码,以减小安装体积、优化代码库结构。 此外,0.82 版本还带来了实验性的 Hermes V1 支持、React 19.1.1 版本更新,以及对 DOM Node APIs 的兼容,诸多亮点值得开发者深入了解。
核心亮点速览

本次更新的核心特性围绕“新架构落地”与“性能体验升级”展开,主要包含四大方向:

  • 仅支持新架构:新架构从默认变为唯一选项,旧架构相关配置将被忽略

  • 实验性 Hermes V1:新一代 JavaScript 引擎,带来更优的加载与交互性能

  • React 19.1.1 集成:解锁完整 Owner Stacks 支持,修复核心 Hooks 行为

  • DOM Node APIs 支持:原生组件通过 Ref 提供类 DOM 节点,统一 Web 与原生开发体验

深度解析核心特性 1. 全面切换新架构:旧架构正式“退场”

早在 React Native 0.76 版本中,新架构就已成为默认选项。经过多版本的测试与优化,0.82 版本正式将新架构设为唯一运行架构——即便开发者在配置中手动关闭新架构(如 Android 端设置newArchEnabled=false、iOS 端通过RCT_NEW_ARCH_ENABLED=0安装 CocoaPods),这些配置也会被忽略,应用仍将基于新架构运行。

如何迁移至新架构?

若尚未完成新架构迁移,建议按以下步骤操作:

  1. 先将项目升级至 React Native 0.81 或 Expo SDK 54(这两个版本是最后支持旧架构的版本,包含迁移专属警告与性能优化);

  2. 在 0.81 版本中启用新架构,验证应用功能正常;

  3. 确认功能无误后,即可安全升级至 0.82 版本(该版本会强制禁用旧架构)。

兼容性保障
  • 互操作层保留:为避免 breaking changes,代码库中的互操作层将在可预见的未来继续保留,相关类与函数暂不删除;

  • 第三方库兼容:经团队验证,支持“新旧架构双向兼容”的第三方库,在 0.82 版本中可正常运行;

  • 旧架构 API 暂不删除:0.82 版本未移除旧架构的核心 API(以保障向后兼容),旧架构代码的清理工作将从下一版本开始(详见 RFC0929 文档)。

2. 实验性 Hermes V1:性能再提升

Hermes 是 React Native 的默认 JavaScript 引擎,本次更新新增了对Hermes V1的实验性支持(需手动开启)。作为 Hermes 的新一代版本,它通过编译器与虚拟机优化,在多个场景下实现性能突破。

性能实测数据

以复杂真实应用 Expensify 为例,Hermes V1 在低配置 Android 设备与 iOS 设备上的表现如下:

性能指标

Android(低配置设备)

iOS 设备

包加载时间

加快 3.2%

加快 9%

总交互就绪时间(TTI)

加快 7.6%

加快 2.5%

内容交互就绪时间

加快 7.2%

加快 7.5%

注:总 TTI 指“从包加载到首屏渲染并可交互”的时间;内容 TTI 指“从组件首次渲染到组件可交互”的时间。

注意事项

目前 Hermes V1 尚未包含“JS 到原生编译”(原“Static Hermes”)与 2023 年 React Native EU 大会上提及的 JIT 编译功能,这些特性仍在测试中,后续将逐步推出。

如何启用 Hermes V1?

由于当前处于实验阶段,需从源码构建 React Native 才能启用,具体步骤如下:

  1. 修改 package.json:强制包管理器解析 Hermes V1 编译器的实验版本(以 yarn/npm 为例):

  • yarn:在resolutions中添加"hermes-compiler": "250829098.0.1"

  • npm:在overrides中添加"hermes-compiler": "250829098.0.1"

Android 端配置

  • android/gradle.properties中添加hermesV1Enabled=true

  • 编辑android/settings.gradle,配置从源码构建 React Native:

    includeBuild('../node_modules/react-native') {
        dependencySubstitution {
            substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
            substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
            substitute(project(":packages:react-native:ReactAndroid:hermes-engine")).using(module("com.facebook.hermes:hermes-android:250829098.0.1"))
        }
    }

iOS 端配置

  • 通过环境变量安装 Pods:RCT_HERMES_V1_ENABLED=1 bundle exec pod install

  • 注意:Hermes V1 不兼容预编译的 React Native 构建,需确保不使用RCT_USE_PREBUILT_RNCORE标志。

验证是否启用成功: 在应用或 DevTools 控制台执行以下代码,若返回版本号250829098.0.1,则说明启用成功:

HermesInternal.getRuntimeProperties()['OSS Release Version'];

3. React 19.1.1 集成:修复与增强并存

0.82 版本将 React 内核更新至 19.1.1,带来两大关键优化:

(1)完整支持 Owner Stacks

在 React Native 0.80 版本中,若使用@babel/plugin-transform-function-name插件,Owner Stacks(组件调用栈)功能无法完全生效。而 19.1.1 版本解除了这一限制,所有 React Native 开发者均可正常使用 Owner Stacks——在报错时,控制台将清晰展示组件的嵌套关系,便于定位问题。

示例对比

  • 旧版本报错仅显示“ComponentThatThrows”的报错位置;

  • 新版本报错会额外显示组件嵌套链(如),明确报错组件的调用上下文。

(2)修复 Suspense 边界下的 Hooks 行为

此前,在 React Native 的 Suspense 边界中使用useDeferredValuestartTransition时,会错误地显示 fallback 组件。19.1.1 版本修复了这一问题,使这两个 Hooks 的行为与 Web 端保持一致,确保应用响应性符合预期。

4. DOM Node APIs 支持:统一 Web 与原生开发体验

从 0.82 版本开始,React Native 原生组件将通过 Ref 提供类 DOM 节点——开发者可使用 Web 开发中熟悉的 API 操作原生组件,无需再依赖 React Native 专属方法(如measuresetNativeProps)。

新增 API 示例

import { useRef, useEffect } from 'react';
import { View } from 'react-native';

function MyComponent(props) {
  const ref = useRef();

  useEffect(() => {
    const element = ref.current;
    // 新增 DOM 类 API
    const parent = element.parentNode; // 获取父节点
    const children = element.children; // 获取子节点列表
    const bounds = element.getBoundingClientRect(); // 获取元素边界(类似 measure)
    const doc = element.ownerDocument; // 获取根文档节点
    const targetElement = doc.getElementById('some-view'); // 通过 ID 获取元素

    // 旧方法仍兼容
    element.measure((x, y, width, height, pageX, pageY) => {
      // 原有 measure 逻辑不变
    });
  }, []);

  return 
;
}
额外能力
  • 支持访问文本节点(由Text组件创建);

  • 支持访问根文档节点(代表 React Native 应用根节点);

  • 完全向后兼容:旧方法(如measure)仍可正常使用,无需修改现有代码。

其他实用更新 1. Web Performance APIs(实验版)

0.82 版本在 Canary 渠道中实现了 Web 端 Performance API 的子集,支持开发者在运行时追踪应用性能(后续将集成到 React Native DevTools 的性能面板)。目前支持的 API 包括:

  • 高精度时间performance.now()(获取高精度时间戳)、performance.timeOrigin(获取性能计时起点);

  • 性能时间线PerformanceObserver(监听性能事件)、getEntries()(获取性能数据);

  • 用户计时performance.mark(标记时间点)、performance.measure(计算两个标记间的时间差);

  • 事件计时PerformanceObserver可监听event类型性能数据;

  • 长任务监测PerformanceObserver可监听longtask类型数据(识别阻塞主线程的长任务)。

注:该功能目前仅在 Canary 版本中可用,稳定版将在后续推出。

2. Android 新增 debugOptimized 构建类型

为提升开发体验,0.82 版本为 Android 新增了debugOptimized构建类型,解决了传统构建类型的痛点:

  • 传统debug类型:支持调试工具(如 React Native DevTools、Metro),但无 C++ 优化,动画与重渲染性能差(约 20 FPS);

  • 传统release类型:性能优但开启混淆,不便于调试;

  • debugOptimized 类型:启用 C++ 优化(动画可达 60 FPS),同时保留 JavaScript 调试能力(支持 React Native DevTools),仅不支持 C++ 原生调试。

如何使用 debugOptimized?
  • 社区 CLI:npx react-native run-android --mode debugOptimized

  • Expo:npx expo run:android --variant debugOptimized

注:该特性已回溯至 React Native 0.81 与 Expo SDK 54 版本。

注意:这些 Breaking Changes 需关注 1. 未捕获的 Promise rejection 会触发 console.error

此前,未捕获的 Promise 错误会被完全忽略;0.82 版本将其纳入错误上报机制,未捕获时会触发console.error,并在控制台显示完整错误栈(如“Error: Uncaught (in promise, id:2): Test error in promise”)。

影响:升级后,历史代码中隐藏的 Promise 错误可能会集中暴露,建议提前排查代码中的未捕获 Promise 问题。

2. 其他 Breaking Changes

类别

变更内容

通用

ReactNativeFeatureFlags

迁移至src/private(私有 API,不建议依赖)

通用

Appearance.setColorScheme()

不再接受 null/undefined,重置时需用“unspecified”

iOS

RCTDisplayLink

不再依赖旧 APIRCTModuleData(该 API 后续将删除)

Android

移除com.facebook.react.bridge.JSONArguments类(此前误设为 public)

Android

废弃MessageQueueThreadPerfStatsAPI(统计数据不可靠,已替换为占位实现)

Android

Gradle 版本从 8.x 升级至 9.0.0(无用户感知影响)

C++

删除CallbackWrapper.h/LongLivedObject.h的兼容头文件,需使用新路径:

(旧路径 失效)


如何升级至 0.82 版本? 1. 现有项目升级

  • 使用React Native Upgrade Helper查看版本间的代码差异(工具链接);

  • 参考官方升级文档,逐步调整配置与代码。

2. 新建项目

npx @react-native-community/cli@latest init MyProject --version latest
3. Expo 项目
  • 0.82 版本已包含在 Expo Canary 渠道中;

  • 下一稳定版 Expo SDK 55 将基于 React Native 0.83 构建。

版本支持说明
  • 0.82 版本已成为 React Native 最新稳定版;

  • 0.79.x 版本正式停止支持(不再接收 bug 修复与安全更新)。

总结

React Native 0.82 以“新架构全面落地”为核心,同步带来性能、开发体验与兼容性的多重升级。对于开发者而言,建议尽早完成新架构迁移,提前适配 Hermes V1 与 DOM Node APIs,为后续版本升级奠定基础。你对本次更新有哪些期待?欢迎在评论区分享你的使用体验!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

顾史
2026-01-21 21:04:39
转队=转院?这病真相太吓人!勇士太惨了....

转队=转院?这病真相太吓人!勇士太惨了....

柚子说球
2026-03-04 20:13:23
刚刚,伊朗发射40多枚导弹!资金大逃离!AI交易,彻底熄火!

刚刚,伊朗发射40多枚导弹!资金大逃离!AI交易,彻底熄火!

新财富杂志
2026-03-04 18:31:37
和孙颖莎不和?王曼昱请客漏掉莎莎,原因曝光,谁注意孙颖莎回应

和孙颖莎不和?王曼昱请客漏掉莎莎,原因曝光,谁注意孙颖莎回应

懂球社
2026-03-03 20:55:31
李雨桐再锤薛之谦!指控他滥杀无辜,恐怕要坐牢,张杰无辜受牵连

李雨桐再锤薛之谦!指控他滥杀无辜,恐怕要坐牢,张杰无辜受牵连

离离言几许
2026-03-03 11:09:30
0305早评:A股迎来反弹!重点关注两个方向

0305早评:A股迎来反弹!重点关注两个方向

孤烟财经
2026-03-05 06:54:12
中东谁也打不过的以色列,在东亚算什么水平?韩国:谁也打不过

中东谁也打不过的以色列,在东亚算什么水平?韩国:谁也打不过

比利
2025-11-29 18:49:51
全国政协委员陆铭:减少过度加班,按规定支付加班工资

全国政协委员陆铭:减少过度加班,按规定支付加班工资

21世纪经济报道
2026-03-04 23:28:37
49岁男保姆哭诉:月薪8000,女雇主要求我每天给她搓背,我忍不了

49岁男保姆哭诉:月薪8000,女雇主要求我每天给她搓背,我忍不了

奶茶麦子
2026-03-03 16:50:09
头号援军已到,伊朗扛得住!特朗普咬牙说了一句话,台当局天塌了

头号援军已到,伊朗扛得住!特朗普咬牙说了一句话,台当局天塌了

探源历史
2026-03-03 11:16:03
NBA名宿JR·史密斯阐述凯尔特人队核心是杰伦·布朗,而非塔图姆

NBA名宿JR·史密斯阐述凯尔特人队核心是杰伦·布朗,而非塔图姆

好火子
2026-03-05 07:48:44
真正的“逆龄运动”,坚持一年大脑年轻2.3岁!不是跑步、走路……

真正的“逆龄运动”,坚持一年大脑年轻2.3岁!不是跑步、走路……

人民日报健康客户端
2026-02-25 07:34:27
开拓者官方闹乌龙!把杨瀚森误写为双向合同 球迷热议交易可能性

开拓者官方闹乌龙!把杨瀚森误写为双向合同 球迷热议交易可能性

罗说NBA
2026-03-05 06:05:21
叶子媚身材有点吓人,上围虽大但却下垂,双腿干瘪像老太太!

叶子媚身材有点吓人,上围虽大但却下垂,双腿干瘪像老太太!

乐悠悠娱乐
2026-03-04 10:53:42
中东乱局中,中国石油A股总市值创17年新高,重夺“一哥”宝座

中东乱局中,中国石油A股总市值创17年新高,重夺“一哥”宝座

上观新闻
2026-03-04 21:17:07
伊朗用血泪换来的教训:一旦中美开战,中国必须首先锁定这一点

伊朗用血泪换来的教训:一旦中美开战,中国必须首先锁定这一点

冷峻视角下的世界
2026-02-20 07:45:35
55岁主持人李静自曝绝经过程,很快失去性魅力,连男人也没兴趣了

55岁主持人李静自曝绝经过程,很快失去性魅力,连男人也没兴趣了

林轻吟
2026-02-23 07:16:08
1天传3个坏消息,谢娜终是为心直口快买单,连累的何止三个女儿

1天传3个坏消息,谢娜终是为心直口快买单,连累的何止三个女儿

白面书誏
2026-03-04 15:17:14
贝尔湖的归属终于有了结果?历经8年艰苦谈判,我国拿回多少面积

贝尔湖的归属终于有了结果?历经8年艰苦谈判,我国拿回多少面积

范烽舍长
2026-03-03 15:23:29
海口市元宵烟花晚会被吐槽!网友:浓烟里听了个响,又看了个寂寞

海口市元宵烟花晚会被吐槽!网友:浓烟里听了个响,又看了个寂寞

火山詩话
2026-03-05 05:40:49
2026-03-05 08:55:00
君伟说
君伟说
分享职场故事
380文章数 48关注度
往期回顾 全部

科技要闻

4599元起!MacBook Neo发布:搭载A18 Pro

头条要闻

牛弹琴:美国开始借刀杀人 找到了颠覆伊朗的"马前卒"

头条要闻

牛弹琴:美国开始借刀杀人 找到了颠覆伊朗的"马前卒"

体育要闻

2026年中超,为什么值得你多看一眼?

娱乐要闻

谢谢谢娜 贡献出26年内娱的第一个笑话

财经要闻

陆铭:减少过度加班 按规定支付加班工资

汽车要闻

鸿蒙智行首款猎装车 尚界Z7/Z7T首发

态度原创

家居
教育
亲子
手机
艺术

家居要闻

极简无界 静居自安然

教育要闻

三年级思维训练,数形结合

亲子要闻

儿科医生教你听咳嗽辨疾病

手机要闻

1月排名:苹果、华为一档,OPPO、vivo一档,小米、荣耀一档

艺术要闻

我们真的应该在中小学大力推广书法艺术吗?

无障碍浏览 进入关怀版