跳到主要内容
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >Version: Next

附录

一、术语

整个与新架构相关的指南将遵循以下术语

  • Spec - TypeScript 或 Flow 形式的代码,用于描述 Turbo Native 模块或 Fabric 原生组件的 API。 Codegen 根据它来生成样板代码。

  • Fabric 原生组件 - 指已经适配以与新架构(即新渲染器)良好协同工作的组件。为简洁起见,您可能会看到它们被称为Fabric 组件

  • Turbo 原生模块 - 指已经适配以与新架构(即新原生模块系统)良好协同工作的模块。为简洁起见,您可能会看到它们被称为Turbo 模块

  • 传统原生组件 - 指运行在 React Native 旧架构上的组件。

  • 传统原生模块 - 指运行在 React Native 旧架构上的模块。

II. Codegen 类型

您可以使用以下表格作为参考,了解每种类型在不同平台上的支持情况:

FlowTypeScriptFlow Nullable SupportTypeScript Nullable SupportAndroid (Java)iOS (ObjC)
stringstring?stringstring | nullstringNSString
booleanboolean?booleanboolean | nullBooleanNSNumber
Object Literal
{| foo: string, ...|}
{ foo: string, ...} as const?{| foo: string, ...|}?{ foo: string, ...} as const--
Object [1]Object [1]?ObjectObject | nullReadableMap@ (untyped dictionary)
Array<T>Array<T>?Array<T>Array<T> | nullReadableArrayNSArray (or RCTConvertVecToArray when used inside objects)
FunctionFunction?FunctionFunction | null--
Promise<T>Promise<T>?Promise<T>Promise<T> | nullcom.facebook.react.bridge.PromiseRCTPromiseResolve and RCTPromiseRejectBlock
Type Unions
'SUCCESS'|'FAIL'
Type Unions
'SUCCESS'|'FAIL'
Only as callbacks--
Callbacks
() =>
Callbacks
() =>
Yescom.facebook.react.bridge.CallbackRCTResponseSenderBlock
numbernumberNodoubleNSNumber

Notes:

[1] 我们强烈建议使用对象字面量而不是对象。

info

您也可以参考 React Native 核心模块的 JavaScript 规范。这些位于 React Native 仓库的 Libraries/ 目录中。