关于react-native:React-Native-064版本发布iOS开启支持Hermes引擎

3次阅读

共计 1359 个字符,预计需要花费 4 分钟才能阅读完成。

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 版本了。

正文完
 0