本文调研所有0.70以上的React Native版本

下文中标绿的点表示比较有用的功能点,标红表示需要需要注意的点

0.70 - 发布于2022.09.05

主要更新点:

  • 统一Codegen的配置

    将安卓 build.gradle中的配置移动到package.json

  • 默认hermes系统

  • 安卓全面支持CMake

  • 升级 metro 0.72.0 支持新的jsx代码转换

  • 重点提升新框架的体验

总结:

70版本主要重点在于提升新框架的用户体验,对于旧架构,简化了安卓端的配置


0.71 - 发布于2023.01.12

主要更新点

  • 0.71新工程默认使用typescript

  • Flexbox加入gap属性,可以替代margin的方式来布局
  • 重启 PropTypes的使用,PropTypes在未来还是会被弃用、

  • Hermes 性能提升
    1. source map的改善
    2. JSON.parse 的性能提升30%
    3. Hermes 支持at() 方法
  • 新框架更新

    1. 减少编译时间
    2. 更少的c++代码编写
    3. iOS端更好的依赖管理
    4. 修复bug跟更好的IDE支持

总结:

71版本相比于70版本有更多有实际意义的更新点:

  1. 加入gap属性的布局能简化项目中的layout
  2. Hermes提升了JSON.parse的性能,该方法在项目中也运用较多,
  3. 新框架进行了全面的优化

0.72 - 发布于2023.06.21

主要更新点

总结:

0.72 着重提升开发者体验,metro新增的功能点都处于beta版本,整体来看更像是一个过渡版本


0.73 - 发布于2023.11.06

主要更新点

  • 调试改进
    1. 解决了hermes系统中,在app初始化时console.log 不打印的问题
    2. 新增了一个官方的debug工具(实验性)
  • 发布符号链接的稳定版本
  • 新增Kotlin 模板
  • Android 14 支持
  • 新框架新增无桥模式
  • Remote JavaScript Debugging 移除
  • iOS版本最小支持13.4
  • Node版本最小支持18

总结:

0.73 着重于优化native端,包括iOS版本最小支持13.4,Android 14的支持,弃用老旧版本对于代码稳定性具有比较大的意义


0.74 - 发布于2024.04.22

主要更新点

  • Yoga 3.0
    1. 新的layout布局,该布局会影响项目中现有组件布局,需要对旧有布局进行修改
    2. 支持 align-content: 'space-evenly'
    3. 支持 position: 'static' 新框架专有
  1. 新框架的更新
    1. 默认开启无桥模式
    2. onLayout 方法批量更新,避免多次重渲染
  2. 使用Yarn 3 管理依赖
  3. 安卓最小版本提升到Android 6
    1. 提升的奖励,app size减少百分13
  4. 存在已知bug,涉及ipad端的多窗口模式

总结:

0.74版本主要点在于引入了Yoga3.0,会对项目旧有布局产生影响,影响点在于有使用row-reverse布局的组件,使用该性质的组件不多,修改工作量可控。


选择

最终选择73的最新版本v0.73.7, 有以下几点原因

  • 目前时间点为2024.4.26,距离74发布仅过了4天,并且74已经存在已知bug,以及布局上对旧有项目的不支持,所以暂不考虑74版本。
  • 72为73的过渡版本
  • 73版本是一个对原生有较大升级的版本,升级的意义较大。