React Native 0.68 版本支持 #11697
Replies: 7 comments 3 replies
-
@zhiqingchen react native 0.68 存在架构大规模变化,组件存在兼容问题,主要体现于 benchmark 的 fps ,同等组件代码 0.63 可以保证 58-60 fps 而 0.68 只能保留在 28-32 fps ,可能是个例,但是希望官方可以也测试一下。 |
Beta Was this translation helpful? Give feedback.
-
Taro Native Shell 升级至 0.68 测试对应分支 https://github.com/NervJS/taro-native-shell/commits/0.68.0 下载现有包进行验证 https://github.com/NervJS/taro-native-shell/releases/tag/v0.68.2-10 修改代码后
查看打包是否正常进行 |
Beta Was this translation helpful? Give feedback.
-
Taro Project Template 升级至 0.68 测试对应分支 https://github.com/zhiqingchen/taro-project-templates/tree/v3.5-0.68
查看打包是否正常进行 https://github.com/NervJS/taro-native-shell/actions 参考分支 https://github.com/NervJS/taro-native-shell/tree/test/template-0.68-1 |
Beta Was this translation helpful? Give feedback.
-
Taro Playground 升级至 0.68 测试对应分支 https://github.com/wuba/taro-playground/tree/releases/v1.6.0 包下载 |
Beta Was this translation helpful? Give feedback.
-
Taro 主仓库升级至 0.68对应分支 https://github.com/wuba/taro-react-native/commits/feat/3.5-68 包安装 3.5.0-zeta.7 测试点
|
Beta Was this translation helpful? Give feedback.
-
可在3.5 beta版本使用 |
Beta Was this translation helpful? Give feedback.
-
请问taro编译为rn如何手动开启New Architecture, 或者是默认开启的? |
Beta Was this translation helpful? Give feedback.
-
概述
将默认的 RN 版本切换至 0.68,同时将 Taro 的原生部分代码进行重构,以应对将来的架构升级,降低维护成本。
动机
React Native 0.68 版本已于 2022-3-30 正式发布。0.68 是首个可选接入 New Architecture 的版本,新架构引入了 4 个激动人心的变更:
整体架构图如上,新架构有望为 RN 带来性能和体验上的飞跃。感兴趣的同学,可以阅读更多细节或直接上手体验。
Taro 将与 RN 社区保持同步,将默认的 RN 版本设置为 0.68。同时为了方便后续维护升级,将原生代码进行了重构。
使用案例
将 Taro 升级至最新版,将原生代码根据相关pr进行变更。
详细设计
Taro 主仓库升级至 0.68
分支:https://github.com/NervJS/taro/tree/feat/3.5
升级内容:
@types/react-native
及react-native
进行版本更新。Taro Native Shell 升级至 0.68
分支:https://github.com/NervJS/taro-native-shell/tree/0.68.0
使用新的方式生成壳工程
以往对于壳工程的升级,我们通常借助React Native Upgrade Helper,进行代码对比,然后对差异文件进行修改。但是 0.68 相比 0.67 变更了 32 个文件,一一对比进行修改工作量较大。于是我们对 Taro Native Shell 的历史代码进行了梳理。
Taro Native Shell,和 React Native init 的工程的区别如下:
yarn dev:rn
启动 metro serveryarn buid:rn
打包 jsbundle 并通过配置rn.output
输出到壳工程梳理了 Taro Native Shell 的生成过程如下:
react-native
初始化项目expo-cli
自动安装 expo修改部分代码以支持 Taro,此部分可以直接 cherry-pick
android
,ios
脚本,增加upgradePeerdeps
脚本install-peerdeps
和pod-install
README.md
文件更新 Taro 需要的依赖(如果还没正式发布,则使用对应的 alpha 或 beta 版本)
未来 Taro Native Shell 的版本升级,可以根据工作量的大小使用React Native Upgrade Helper或者如上步骤进行操作。
接入 github action
Taro Native Shell 工程目前缺乏 CI,以至于测试的过程仍然较为繁琐。为了让测试彻底摆脱 Android 及 iOS 开发环境,我们为该工程也加入了 GitHub Actions。修改代码后,通过添加 tag,可触发打包,然后在 Actions 页面查看打包是否正常。
更多细节建议阅读《使用 Taro 高效开发 APP》。
将 Android 打包方案重构
Android 的打包过程,从调用 gradlew 改为使用 fastlane,将打包过程配置化,尽可能地减少对 RN 初始化后原生代码的入侵。相关配置位于
android/fastlane
,目前仅做了基础配置,开发者可进一步自定义。Taro Project Template 升级至 0.68
分支:https://github.com/NervJS/taro-project-templates/tree/v3.5
使用方法:
升级内容:
taro init
初始化的工程能正常使用。为了方便
taro init
功能测试,可借助 shell 工程的配置,进行打包:Taro Playground 升级至 0.68
分支:
https://github.com/wuba/taro-playground/tree/releases/v1.6.0
升级内容:
安装包下载:
https://github.com/wuba/taro-playground/releases/tag/v1.6.0-beta.6
缺陷
替代选择
N/A
适配策略
Beta Was this translation helpful? Give feedback.
All reactions