React Native 各版本(0.64~0.72)特性及 Breaking Changes

1,835 阅读2分钟

最近要升级 React Native 版本,花了些时间整理不同版本的特性和重要改变,分享给大家。

了解各个版本的特性和改变,有助于我们决定升级到哪个版本。

0.72

2023.6.21

这个版本的变更非常关键,如果新架构真的能支持老架构的 Native Component,那就升级成本就会少很多。

新特性

  1. Metro 支持 Symlink(用于 monorepo)
  2. 开发者体验提升
    • 样式错误不直接报错
    • hermes 错误信息更加具体
    • 提升 hermes bundle 编译速度
  3. 新架构的更新

Breaking Changes

  1. 删除组件:Slider DatePickerIOS ProgressViewIOS
  2. 有一些库的包名路径修改,需要升级它们到 0.72 版本以上

相关链接

reactnative.dev/blog/2023/0…

github.com/reactwg/rea…

0.71

2023.1.12

这个版本的新架构 C++ 代码减少还是很有用的,要不然修改一下太烦了,官方是办实事的。

新特性

  1. 默认支持 TS(通过 RN CLI 创建项目)
  2. 支持 Flexbox gap 属性,简化布局
  3. 开发者体验提升:React DevTools 支持组件高亮
  4. Hermes:提升 JSON.parse 30% 性能
  5. 新架构的更新
    • 减少构建时间
    • 安卓模版删除大量 C++ 代码,减轻适配新架构成本
    • iOS 上封装了设置新架构的 API,减轻成本

Breaking Changes

  1. 删除组件: AsyncStorage MaskedViewIOS
  2. react-jsi 拆成两个库 react-jsc 和 react-jsi,如果使用了 JSCRuntime 需要额外补充 react-jsc 依赖

相关链接

reactnative.dev/blog/2023/0…

0.70

2022.9.5

这个版本直接让 hermes 作为默认引擎了,挺好的,实测下来 hermes 快很多。

新特性

  1. Hermes 作为默认引擎
  2. Codegen 的配置方式修改
  3. 开发体验提升: a. yarn add 后就可以自动添加依赖,不需要再手动配置

Breaking Changes

  1. Metro 升级到 0.72
  2. 升级 Android Gradle Plugin 到 7.2.1
  3. 升级 Gradle 到 7.5.1

相关链接

reactnative.dev/blog/2022/0…

reactnative.dev/blog/2022/0…

0.69

2022.6.21

新特性

  1. 默认使用 React 18
  2. 内置 Hermes,不需要开发者选择 Hermes 的版本 a. Android 如果使用新架构,需要编译源码

Breaking Changes

  1. RN CLI 升级到 8.0,删除了一些命令
  2. 升级 Android Gradle Plugin 到 7.1.0

相关链接

reactnative.dev/blog/2022/0…

react.dev/blog/2022/0…

reactnative.dev/docs/next/r…

reactnative.dev/architectur…

0.68

2022.3.30

新特性

  1. 开始支持新架构 a. Fabric 渲染器 b. TurboModule 系统

Breaking Changes

  1. 升级 Node 到 16
  2. 升级 Android Gradle Plugin 到 7.0.1
  3. 升级 Gradle 到 7.3
  4. 强制使用 JSDK 11

相关链接

reactnative.dev/blog/2022/0…

reactnative.dev/blog/2022/0…

0.67

2022.1.19

新特性

Breaking Changes

  1. 删除组件:DatePickerAndroid
  2. 升级 Gradle 到 7.2

相关链接

reactnative.dev/blog/2022/0…

0.66

2021.10.1

新特性

  1. 支持 Android 12 的新蓝牙权限

Breaking Changes

  1. 使用 Hermes 0.9.0

相关链接

reactnative.dev/blog/2021/1…

0.65

2021.8.17

新特性

Breaking Changes

  1. 使用 Hermes 0.8 a. Android 平台默认支持 ECMAScript 国际化 API b. iOS 支持苹果 M1 芯片

相关链接

reactnative.dev/blog/2021/0…

0.64

2021.3.12

新特性

  1. iOS 端支持 Hermes
  2. Metro 默认开启 inline requires a. 延迟导入,提升启动速度
  3. 支持在 Chrome 上分析 hermes 执行

Breaking Changes

相关链接

reactnative.dev/blog/2021/0…

reactnative.dev/docs/profil…