当前位置: 首页 > news >正文

React Native 0.86 亮点速览:边到边修复、DevTools 深色模拟、JSI 再增强

一、概述

React Native 0.86 于 2026 年 6 月 11 日发布,是一个无用户侧破坏性变更的版本。自 0.83 版本以来,这已是连续第二个无破坏性变更的发布,体现了官方团队对"让升级更可预测、更顺畅"的持续承诺。该版本包含596 个 commits,共有97 位贡献者参与。


二、三大核心亮点

1. 代码仓库迁移至 React 基金会

React Native 仓库(连同 React、Metro、Yoga 及官网)已从thereact组织迁移至React 基金会(React Foundation)。GitHub 会自动重定向所有现有 URL、Issue 和 PR,开发者无需采取任何行动。这标志着 React 生态治理走向更加独立和长期化的方向。

2. Android 15+ 边到边(Edge-to-Edge)全面支持

这是本次发布最重大的功能更新。修复内容包括:

修复项说明
measureInWindow边到边模式下返回正确的坐标
KeyboardAvoidingView在 Android 15+ 边到边模式下正常工作
DimensionsAndroid 15 以下版本中 window 值准确
StatusBarModal 打开时支持更新状态栏样式和可见性
导航栏对比度遵循主题的enforceNavigationBarContrast属性

即使 Android 系统强制启用边到边模式但开发者未通过edgeToEdgeEnabledGradle 属性显式启用,这些修复依然生效。

该功能主要由社区成员Mathieu Acthernoene贡献。

3. React Native DevTools 支持深色/浅色模式模拟

开发者现在可以通过Emulation.setEmulatedMediaAPI,在 DevTools 中直接模拟深色/浅色模式,无需修改设备系统设置即可测试应用的外观适配。通过Cmd/Ctrl + Shift + P调出命令面板即可使用。这是一个临时切换,断开 DevTools 后会自动重置。


三、无破坏性变更(Breaking Changes)

React Native 0.86 没有用户侧破坏性变更。如果当前项目在 0.85 版本上运行,升级到 0.86无需修改任何应用代码


四、已弃用 API(Deprecations)

以下 API 已标记为弃用,将在未来版本中移除:

  • ViewUtil.getUIManagerType—— 作为旧架构移除工作的一部分,建议直接内联UIManagerType.Fabric或直接移除相关检查。
  • AppRegistry.setComponentProviderInstrumentationHook的第二个参数—— 使用时会触发警告。

五、其他重要变更

1. 运行时与 Web 规范对齐
  • ExceptionsManager.reportErrorsAsExceptions:现在只有显式的false布尔值才能禁用错误转异常,此前任何 falsy 值(如0null"")都会触发转换,新行为更不易出错。
  • PerformanceObserver默认durationThreshold:遵循 W3C Event Timing 规范,默认阈值设为104ms,避免报告过多过短的事件,减少噪音。
2. 渲染、布局与动画
  • Modal 的styleprop现在会透传到内部容器 View,支持自定义 padding、背景色等,且不会覆盖transparentbackdropColor行为。
  • Native Animated 同步修复:启用挂载层同步,防止动画视图在 React commit 后被覆盖回动画前数值,修复了视图闪烁问题
  • 文本测量崩溃修复:修复了在已停止的 surface 上测量文本时的崩溃。
  • 非可逆变换触摸修复scaleX: 0scaleY: 0的视图不再响应触摸事件(Android 和 iOS)。
  • Yoga 布局修复:修复了绝对定位元素中的文本换行、BoringLayout.isBoring()负宽度崩溃等多个布局回归问题。
3. 无障碍功能
  • AccessibilityInfo的三个 APIisDarkerSystemColorsEnabledisHighTextContrastEnabledprefersCrossFadeTransitions)在不支持的平台上不再永久挂起,而是返回false
4. 基础设施与依赖
  • Metro 更新至 ^0.84.2
  • HeadlessJsTaskSupportModule自动注册:使用 Headless JS 任务的 Android 应用不再需要手动注册该模块。
5. JSI(原生接口)增强

新增多个 JSI API,提升 C++ 原生模块与 JS 引擎之间的交互能力:

新增能力说明
IRuntime接口将此前受保护的 Runtime 方法公开
TypedArray/Uint8Array一等公民支持,包括创建、buffer 访问、偏移量和长度查询
ArrayBuffer.detached检查 ArrayBuffer 是否已分离
Array.push向数组追加元素(此前数组大小创建后不可变)
String.length获取 UTF-16 代码单元长度,无需转换为完整字符串
isInteger检查jsi::Value是否为整数,无需调用运行时
错误创建 API所有标准 JS 错误类型的工厂方法
6. Android 输入、导航与图片
  • BackHandlerhardwareBackPress事件现在携带timeStamp属性;修复了 Android API 36+ 上应用从后台恢复后回调失效的问题;LogBox 和 inspector 遮罩现在可通过返回键关闭。
  • TextInput:修复了三星键盘上setAutoCapitalize错误剥离数字输入标志的问题;KeyboardAvoidingView和 TextInput 现在能正确响应 IME 高度变化(如键盘与表情面板切换)。
  • Pressableandroid_ripple现在支持PlatformColor
  • Image.getSize/getSizeWithHeaders现在返回真实的源图片尺寸,而非 Fresco 下采样后的值。
7. Android 网络
  • NetworkingModule现在能正确处理超大 HTTP 响应,避免 OOM 崩溃。
  • WebSocket不再剥离通过构造函数headers选项传递的Cookie头,允许通过 WebSocket 发送认证 Cookie。
  • Blob content provider现在在新架构下正常工作。

六、升级指南

  • 0.86 已成为最新稳定版本,0.83.x 已进入不再支持状态。
  • 推荐使用React Native Upgrade Helper查看版本间的代码变更差异。
  • 新建项目:npx @react-native-community/cli@latest init MyProject --version latest
  • Expo 项目:0.86 将通过expo@canary渠道提供。

七、总结

React Native 0.86 是一个以稳定性、标准化和开发者体验为核心的渐进式更新版本

维度评价
升级友好度⭐⭐⭐⭐⭐ 无破坏性变更,升级成本极低
Android 体验⭐⭐⭐⭐⭐ 边到边全面修复,覆盖 Android 15+ 痛点
开发调试⭐⭐⭐⭐ DevTools 深色模式模拟提升效率
标准化⭐⭐⭐⭐ 持续对齐 Web 规范(Performance API、W3C Event Timing)
新架构铺垫⭐⭐⭐⭐ JSI 增强 + 旧架构 API 弃用,为架构切换铺路
社区参与⭐⭐⭐⭐⭐ 97 位贡献者,社区成员主导核心功能

整体来看,0.86 版本体现了 React Native 团队在治理独立化(迁移至 React 基金会)、平台能力完善(Android 边到边)和开发体验优化(DevTools)三个方向的持续深耕,同时通过连续两个无破坏性变更的版本,向社区传递了"升级不再令人恐惧"的积极信号。

http://www.jsqmd.com/news/1106847/

相关文章:

  • 技术人转型项目管理:30岁前后如何用PMP完成思维切换
  • 当下游master被污染后,如何与上游master进行同步
  • 计算机Java毕设实战-基于 SpringBoot 的中小学学生德育行为考评系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 科研选题不再受限于抗体缺货,云克隆全链条自研如何支撑百万种衍生资源
  • 免费开源桌面分区神器:5分钟彻底告别杂乱Windows桌面
  • Docker容器的跨节点通信
  • Linux基础文件与目录实操学习笔记
  • 塞尔达传说:旷野之息存档编辑器终极指南 - 5分钟掌握海拉鲁世界修改秘籍
  • 云手机技术详解:原理、自动化 API 实战代码与商用选型指南
  • 说明Svcb到外部服务的通信被打通了!
  • 【毕业设计】基于 SpringBoot 的学生日常表现评分登记管理系统的设计与实现 基于 SpringBoot 的中小学行为规范考核管理系统(源码+文档+远程调试,全bao定制等)
  • 返回主页I WOULD NEVER DIE FOR MY BELIEFS BECAUSE I MIGHT BE WRONG
  • 机器学习模型生产就绪:从Notebook到高可用服务的系统化实践
  • 临床AI风险分层模型:从电子病历挖掘生存期预测信号
  • 让AI读懂你的企业:云境标书AI在招投标场景下RAG与知识图谱的工程实践
  • 3分钟掌握OFD转PDF:免费开源工具Ofd2Pdf完全指南
  • Claude 实战: AI 自动帮你“加班“:/loop 完全指南
  • 职场人迈入 35 岁别再盲目内卷!提前做好职业长期布局规划,避开中年危机实现稳步增值
  • 轻量化DenseNet胸片肺炎AI模型临床部署实践
  • WaveTools鸣潮工具箱:免费解锁游戏帧率与抽卡分析的终极指南
  • ISP算法工程师面试--3A之AE篇
  • AI工程师简历与作品集构建全攻略
  • 微信聊天记录备份:数字记忆的守护者与数据自主权的思考
  • 【CTF 竞赛干货】计算机专业夺旗赛全流程攻略,新手入门学习、赛场解题实战技巧,附赠工具包与完整赛事汇总表
  • 陕西市场靠谱的电瓶观光车制造商找哪家
  • 大模型量化-rr
  • MES如何对接PLC?从OPC UA、Modbus到MQTT,一文讲透设备数据采集架构(附系统架构图)
  • 自动化Web性能测试:从核心指标到CI/CD实践
  • 拍卖系统架构拆解:从用户端到竞价引擎需要哪些核心功能?
  • 国内可用电商AI作图工具技术横评与选型方案:从实测数据到自动化工作流