React Native 面试题
目录

React Native 中如何与原生代码交互?

· 约 11 分钟读完 · 第 75 / 268 章

推荐答案

在 React Native 中,与原生代码交互主要通过以下几种方式实现:

  1. Native Modules:通过创建原生模块,将原生代码暴露给 JavaScript 调用。
  2. Native UI Components:通过创建原生 UI 组件,将原生视图嵌入到 React Native 应用中。
  3. Event Emitters:通过事件发射器,从原生代码向 JavaScript 发送事件。

Native Modules

Native Modules 允许你在 JavaScript 中调用原生代码。你可以通过以下步骤创建一个 Native Module:

  1. 在原生代码中创建一个类,并实现 RCTBridgeModule 协议(iOS)或继承 ReactContextBaseJavaModule(Android)。
  2. 使用 RCT_EXPORT_MODULE() 宏(iOS)或 @ReactModule 注解(Android)将模块暴露给 JavaScript。
  3. 使用 RCT_EXPORT_METHOD() 宏(iOS)或 @ReactMethod 注解(Android)将方法暴露给 JavaScript。

Native UI Components

Native UI Components 允许你在 React Native 中使用原生视图。你可以通过以下步骤创建一个 Native UI Component:

  1. 在原生代码中创建一个视图类,并实现 RCTViewManager 协议(iOS)或继承 SimpleViewManager(Android)。
  2. 使用 RCT_EXPORT_MODULE() 宏(iOS)或 @ReactModule 注解(Android)将视图管理器暴露给 JavaScript。
  3. 在 JavaScript 中使用 requireNativeComponent 函数来引用原生组件。

Event Emitters

Event Emitters 允许你从原生代码向 JavaScript 发送事件。你可以通过以下步骤实现事件发射:

  1. 在原生代码中创建一个类,并实现 RCTEventEmitter 协议(iOS)或继承 ReactContextBaseJavaModule 并实现 getSupportedEvents 方法(Android)。
  2. 使用 sendEventWithName 方法(iOS)或 emit 方法(Android)发送事件。
  3. 在 JavaScript 中使用 NativeEventEmitter 类来监听事件。

本题详细解读

Native Modules 详细步骤

iOS

  1. 创建原生模块:

  2. 在 JavaScript 中调用:

Android

  1. 创建原生模块:

  2. 在 JavaScript 中调用:

Native UI Components 详细步骤

iOS

  1. 创建原生视图:

  2. 在 JavaScript 中使用:

Android

  1. 创建原生视图:

  2. 在 JavaScript 中使用:

Event Emitters 详细步骤

iOS

  1. 创建事件发射器:

  2. 在 JavaScript 中监听事件:

Android

  1. 创建事件发射器:

  2. 在 JavaScript 中监听事件: