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

react-native中如何更新两个独立组件的状态?

如何从存储中更新 React Native 功能组件状态

在 React Native 中更新推送通知令牌