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

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.

相关推荐
热点推荐
男子高铁上要求让座后续!被拒绝后辱骂,年轻人反击,12306回应

男子高铁上要求让座后续!被拒绝后辱骂,年轻人反击,12306回应

鋭娱之乐
2025-11-06 00:45:03
“感谢他?”——阿什拉夫重伤,拜仁球员轻率玩笑惹巴黎愤怒

“感谢他?”——阿什拉夫重伤,拜仁球员轻率玩笑惹巴黎愤怒

星耀国际足坛
2025-11-05 23:07:13
常揉此穴,一辈子远离心梗!没事记得揉一揉

常揉此穴,一辈子远离心梗!没事记得揉一揉

神奇故事
2025-11-04 22:03:24
别再乱吃了!华人常吃的保健品被曝或“助癌生长”!补得太勤反而害了自己...

别再乱吃了!华人常吃的保健品被曝或“助癌生长”!补得太勤反而害了自己...

最英国
2025-11-05 19:05:18
60亿日本动画内地定档,评分8.8,中国观众将助其超越《哪吒2》

60亿日本动画内地定档,评分8.8,中国观众将助其超越《哪吒2》

影视高原说
2025-11-03 18:56:47
王子奇拒吻戏,打了谁的脸?

王子奇拒吻戏,打了谁的脸?

孟一宜
2025-11-05 15:30:38
人民日报专访,揭开32岁周深的真实处境,那英确实一个字都没说错

人民日报专访,揭开32岁周深的真实处境,那英确实一个字都没说错

八斗小先生
2025-11-01 08:46:54
24岁时迪巴拉身价高达1.1亿!但如今仅剩800万,原因真的太扎心!

24岁时迪巴拉身价高达1.1亿!但如今仅剩800万,原因真的太扎心!

田先生篮球
2025-11-04 12:16:13
演员祝新运:凭借潘冬子火遍全国,却娶了离异还大3岁的妻子

演员祝新运:凭借潘冬子火遍全国,却娶了离异还大3岁的妻子

揽星河的笔记
2025-11-05 13:55:47
1979年越南战败后,黎笋要求中国边线北移100公里,杨得志:打!

1979年越南战败后,黎笋要求中国边线北移100公里,杨得志:打!

小影的娱乐
2025-10-24 08:04:06
白百何好友下场了!揭露争奖细节,放话大不了鱼死网破电影不上了

白百何好友下场了!揭露争奖细节,放话大不了鱼死网破电影不上了

萌神木木
2025-11-05 22:10:00
湖北县域高铁站掀起“规模竞赛”,7大站点规格直逼地级市

湖北县域高铁站掀起“规模竞赛”,7大站点规格直逼地级市

观察眼看世界
2025-11-05 19:30:03
稳定币,东方崛起的另一个拦路虎!

稳定币,东方崛起的另一个拦路虎!

犀利辣椒
2025-11-05 23:02:48
挪威历史性暂停主权财富基金道德准则 允许其保留所投美科技巨头股份

挪威历史性暂停主权财富基金道德准则 允许其保留所投美科技巨头股份

财联社
2025-11-05 18:30:06
斯诺克国锦赛:8强落位,11月6日赛程出炉,赵心童、吴宜泽冲4强

斯诺克国锦赛:8强落位,11月6日赛程出炉,赵心童、吴宜泽冲4强

越岭寻踪
2025-11-06 00:57:45
中金大瓜,易晨阳从业资格被取消...

中金大瓜,易晨阳从业资格被取消...

金石随笔
2025-11-06 00:10:31
80岁大妈的明智养老:不雇保姆不去养老院,而是花钱请儿媳养老

80岁大妈的明智养老:不雇保姆不去养老院,而是花钱请儿媳养老

热心柚子姐姐
2025-11-05 08:32:37
迟迟等不到中方供货后,安世荷兰将负100%全责,商务部宣布大结局

迟迟等不到中方供货后,安世荷兰将负100%全责,商务部宣布大结局

青途历史
2025-11-06 00:57:14
山东女子打麻将输钱,自愿与三名牌友发生关系抵债,是否构成犯罪

山东女子打麻将输钱,自愿与三名牌友发生关系抵债,是否构成犯罪

四月十九
2024-09-03 17:10:30
14天11板!000592,又双叒叕提示风险……

14天11板!000592,又双叒叕提示风险……

证券时报e公司
2025-11-05 23:30:54
2025-11-06 09:15:00
君伟说
君伟说
分享职场故事
350文章数 48关注度
往期回顾 全部

科技要闻

苹果“认输”!曝每年10亿美元租用谷歌AI

头条要闻

记者问了欧盟一个“有趣”的问题 然后被解雇了

头条要闻

记者问了欧盟一个“有趣”的问题 然后被解雇了

体育要闻

赢下皇马,会是利物浦的转折点吗?

娱乐要闻

港星林尚武突发心脏病去世

财经要闻

特朗普关税遭美国高院大法官轮番质疑

汽车要闻

智己LS9入局"9系"混战 全尺寸SUV市场迎来新变量

态度原创

房产
艺术
旅游
时尚
本地

房产要闻

最新!海南楼市10月热销榜单出炉!

艺术要闻

张铁林的书法到底有多神秘?看看这幅作品!

旅游要闻

黑龙江将开展冬季冰雪旅游“百日行动” 冰雪产业规模有望破万亿

中国色特别策划 | 故宫技艺与古意新生

本地新闻

这届干饭人,已经把博物馆吃成了食堂

无障碍浏览 进入关怀版