React Native 0.64发布更新
Posted suwu150
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native 0.64发布更新相关的知识,希望对你有一定的参考价值。
前不久,也就是2021年3月12日,React-Native官方发布了最新版本0.64,这个版本相对来说有较大的更新。
一、ios中加入了hermes引擎
在android版本中已经支持有一段时间的hermes引擎在ios中添加了支持。
Hermes是一个开放源代码的javascript引擎,专门针对运行React Native进行了优化。它通过降低内存利用率,减小下载大小并减少应用程序可用或“交互时间”(TTI)所花费的时间来提高性能。
在此版本中,您现在也可以使用Hermes在iOS上进行构建。要在iOS上启用Hermes,请在您的Podfile中将hermes_enabled设置为true并运行pod install。
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
:hermes_enabled => true
)
请记住,iOS上对Hermes的支持仍处于早期阶段。在进行进一步的基准测试时,我们将其作为选择加入。我们鼓励您在自己的应用程序上尝试它,并让我们知道它如何为您工作!
二、默认情况下启用内联导入
Inline Requires是一个Metro配置选项,它通过延迟JavaScript模块的执行直到使用它们而不是在启动时来缩短启动时间。
此功能已经存在,已经推荐该功能被作为可选配置选项,在我们的文档的“性能”部分中列出了该功能。现在,我们默认为新应用程序启用此选项,以帮助人们无需额外配置即可快速使用React Native应用程序。
Inline Requires是Babel变换,它接受模块导入并将其转换为内联。例如,Inline Requires将此模块导入调用从位于文件顶部的位置转换为使用它的位置。
Before:
import MyFunction from 'my-module';
const MyComponent = (props) =>
const result = MyFunction();
return <Text>result</Text>;
;
After:
const MyComponent = (props) =>
const result = require('my-module').MyFunction();
return <Text>result</Text>;
;
性能文档中提供了有关内联导入
的更多信息。
三、使用Chrome查看Hermes痕迹
在过去的一年中,Facebook赞助了美国职业棒球大联盟研究金,以支持对React Native的贡献。 Jessie Nguyen和Saphal Patro添加了使用Chrome DevTools上的“性能”选项卡来可视化应用程序在使用Hermes时的执行情况的功能。
有关更多信息,请查看新的文档页面。
四、具有代理支持的Hermes
我们已为Hermes添加了代理支持,从而实现了与热门社区项目(如react-native-firebase和mobx)的兼容性。如果您一直在使用这些软件包,则现在可以为您的项目迁移到Hermes。
我们计划在即将发布的版本中使Hermes成为Android的默认JavaScript引擎,因此我们正在努力解决人们在使用Hermes时仍然遇到的问题。如果还有其他问题使您的应用无法采用Hermes,请在Hermes GitHub存储库上打开一个问题。
五、React 17
React 17不包含面向开发人员的新功能或重大更改。对于React Native应用程序,主要更改是新的JSX转换,使文件不再需要导入React即可使用JSX。
有关React 17的更多信息,请参见React博客。
六、主要依赖版本更改
- 移除了Android API级别16-20。 Facebook应用程序始终放弃对使用率足够低的Android版本的支持。由于Facebook应用程序不再支持这些版本,并且是React Native的主要测试平台,因此React Native也将放弃支持。
- 需要Xcode 12和CocoaPods 1.10
- 最低Node版本支持从10增加到12
- Flipper升至0.75.1
0.64更改日志包括此版本中包含的所有更改,更多更详细的更新日志。
以上是关于React Native 0.64发布更新的主要内容,如果未能解决你的问题,请参考以下文章
React Native 0.64 命令 PhaseScriptExecution 失败,退出代码非零
XCode 13 构建错误 - 无法找到或使用自动链接库 'swift_Concurrency' - React Native 0.64-65
React Native 0.64-65 with XCode 13 build error - 找不到自动链接库 swift_Concurrency 或 swiftFileProvider