npx create-expo-app@latest
Metro 是 React Native 默认用的 JavaScript 打包器(bundler),主要功能是:
import
/require
构建模块依赖图它针对移动端调试和开发做了性能优化,启动快、修改回馈迅速。
Native Module(本地模块)是指用原生语言(iOS 上的 Objective‑C/Swift,Android 上的 Java/Kotlin 或 C++)写的一段代码,它直接暴露平台能力给 JavaScript 使用。在 React Native 新架构里,它有以下特点:
基于 JSI 实现 TurboModule
注册流程
在原生代码里写接口声明(带注解),比如:
// MyModule.h
#include <jsi/jsi.h>
using namespace facebook::jsi;
Value getDeviceName(Runtime& rt, const Value* args, size_t count);
通过代码生成(codegen)工具,自动生成 C++ 包装器,并在初始化时注册到 JS 环境里。
在 JS 端:
import {TurboModuleRegistry} from 'react-native';
const MyModule = TurboModuleRegistry.getEnforcing('MyModule');
console.log(MyModule.getDeviceName()); // 同步调用
性能优势
何时用