跳至主内容
版本:当前版本

使用 Hermes

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

Hermes 是一个专为 React Native 优化的开源 JavaScript 引擎。对大多数应用而言,使用 Hermes 相比 JavaScriptCore 能缩短启动时间、降低内存占用并减小应用体积。 React Native 默认启用 Hermes,无需额外配置。

内置 Hermes

React Native 自带内置版本的 Hermes。 每当发布新版 React Native 时,我们都会为您构建对应的 Hermes 版本。这确保您使用的 Hermes 版本与当前 React Native 版本完全兼容。

此变更对 React Native 用户完全透明。您仍可通过本页描述的指令禁用 Hermes。 您可在此页面了解技术实现的详细信息

确认 Hermes 是否启用

若您最近创建了新应用,可在欢迎界面查看 Hermes 启用状态:

Where to find JS engine status in the new project?

JavaScript 环境中将存在全局变量 HermesInternal,可用于验证 Hermes 是否启用:

jsx
const isHermes = () => !!global.HermesInternal;
注意

若使用非标准方式加载 JS 包,可能出现 HermesInternal 变量存在但未使用高度优化的预编译字节码的情况。 请确认您在使用 .hbc 文件,并按照下文说明进行性能对比测试。

要验证 Hermes 的优势,请尝试构建/部署应用的 release 版本进行对比。例如在项目根目录执行:

shell
npm run android -- --mode="release"

这将在构建时将 JavaScript 编译为 Hermes 字节码,从而提升应用在设备上的启动速度。

切换回 JavaScriptCore

React Native 同样支持使用 JavaScriptCore 作为 JavaScript 引擎。请按照社区仓库中的说明禁用 Hermes。