React Native 0.64版本公布了,次要更新内容是在iOS开启反对Hermes。

1.iOS反对Hermes引擎。

Hermes是一个为优化运行React Native而开源的JavaScript引擎。它通过升高内存利用率、缩小下载大小和缩小应用程序可用或“交互工夫”(TTI)所需的工夫来进步性能。

其实Hermes在之前就曾经优先在Android平台上进行了反对,应该是在0.60.4版本上开启了反对,相干文章Meet Hermes, a new JavaScript Engine optimized for React Native以及开启Hermes反对的办法Using Hermes.

此次版本更新也正是开启了iOS平台上反对了Hermes。开启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尚在初期阶段。React Native团队会持续进行大量的根底测试,激励用户在利用中进行尝试。

2.默认启用Inline Requires

Inline Requires是一个Metro配置选项,它通过提早加载JavaScript模块的执行,来缩短启动工夫,提交加载速度。其作为可选配置抉择曾经存在很多年,当初新版本利用中默认开启,以此帮忙用户无需额定配置就能够疾速应用React Native.

Inline Requires 是一种 Babel 变换,它能够将模块导入并转换为 inline。例如,Inline Requires 将这个模块导入调用从文件的 top 转换到应用它的中央。

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>);};

3.应用Chrome查看Hermes

4.Hermes反对代理

在比拟风行的第三方库应用上增加了Hermes代理,比方react-native-firebase and mobx.

5.反对React 17

React 17 不蕴含面向开发者的新性能,也没有重大的突破性变动。对于 React Native 利用来说,次要的变动是一个新的 JSX 转换,使得文件不再须要导入 React 就可能应用 JSX。

无关React 17的一些状况,能够看看React官网文档

6.总结

此次React Native 0.64版本的更新属于惯例更新,并没有突出的新性能公布,期待React Native 1.0版本的正式到来,毕竟隔壁的Flutter都曾经公布2.0版本了。