🔥 核心亮点
1. 全新的动画引擎(Shared Animation Backend)
React Native 0.85 引入了全新的共享动画后端,由 React Native 团队与 Software Mansion 合作开发。这是驱动 Animated 和 Reanimated 动画表现的全新内部引擎。
主要优势:
- 将主要动画更新逻辑移至 React Native 核心,Reanimated 能实现之前无法达到的性能优化
- 确保更新协调过程经过proper测试,未来 RN 更新时更加稳定
- Animated 现在支持使用原生驱动(native driver)动画化布局属性(如 flexbox 和 position 属性)
⚠️ 注意:此实验性功能仅在 0.85.1 版本中可用(即将发布)
示例代码:
import { Animated, Button, View, useAnimatedValue } from 'react-native';
function MyComponent() {
const width = useAnimatedValue(100);
const toggle = () => {
Animated.timing(width, {
toValue: 300,
duration: 500,
useNativeDriver: true, // 现在可以正常使用原生驱动!
}).start();
};
return (
<View style={{flex: 1}}>
<Animated.View style={{width, height: 100, backgroundColor: 'blue'}} />
<Button title="Expand" onPress={toggle} />
</View>
);
}
2. React Native DevTools 改进
- 多CDP连接支持:现在支持多个 Chrome DevTools Protocol 连接同时工作,可同时连接 React Native DevTools、VS Code 和 AI 代理
- macOS 原生标签页:桌面应用更新支持 macOS 26 系统级标签页处理
- 网络面板请求预览恢复:Android 平台的网络请求 body 预览功能已恢复
3. Metro TLS 支持
Metro 开发服务器现在支持 TLS 配置,可启用 HTTPS 和 WSS(Fast Refresh),方便测试强制安全连接的 API。
⚠️ 破坏性变更
| 变更项 | 说明 |
|---|---|
| Jest Preset 迁移 | 从 react-native 包提取到 @react-native/jest-preset 新包 |
| Node.js 版本要求 | 最低支持 v20.19.4;v21、v23 不再支持;推荐 v20.19.4+ 或 v22 LTS |
| StyleSheet.absoluteFillObject 移除 | 使用 StyleSheet.absoluteFill 替代 |
| Android 清理 | 移除 CatalystInstanceImpl、废弃 UIManagerHelper 等旧架构代码 |
| iOS 废弃 | RCTHostRuntimeDelegate 合并至 RCTHostDelegate |
📦 其他更新
- Metro 升级至 v0.84.0
- React 更新至 Hermes 250829098.0.10
- Yoga:
YogaNode迁移至 Kotlin(Android) - 无障碍功能:
setAccessibilityFocus废弃,改用sendAccessibilityEvent - Android 构建:支持通过
reactNativeDevServerIpGradle 属性指定开发服务器 IP
🚀 如何升级
# 新项目
npx @react-native-community/cli@latest init MyProject --version latest
# 已有项目 - 使用升级助手
# 访问 https://react-native-community.github.io/upgrade-helper/
使用 Expo? 即将发布的 Expo SDK 56 将包含 React Native 0.85。
Summary: React Native 0.85 Release Description: React Native 0.85 版本发布,包含全新共享动画后端、DevTools 多连接支持、Metro TLS、Jest Preset 迁移至独立包等重要更新,以及多项破坏性变更和清理工作。