AppRegistry
는 모든 React Native 앱을 실행하기 위한 JS 진입점이다. 앱의 루트 컴포넌트는 AppRegistry.registerComponent
를 통해 스스로를 등록해야 한다. 그런 다음 네이티브 시스템이 앱의 번들을 로드하고, 준비가 되면 AppRegistry.runApplication
을 호출해 앱을 실제로 실행한다.
import {Text, AppRegistry} from 'react-native';
const App = () => (
<View>
<Text>App1</Text>
</View>
);
AppRegistry.registerComponent('Appname', () => App);
뷰가 파괴될 때 앱을 "중지"하려면, runApplication
에 전달된 태그와 함께 AppRegistry.unmountApplicationComponentAtRootTag
를 호출한다. 이 두 메서드는 항상 쌍으로 사용해야 한다.
AppRegistry
는 다른 모듈이 로드되기 전에 JS 실행 환경이 설정되도록, require
시퀀스의 초기에 불러와야 한다.
참조
메서드
getAppKeys()
static getAppKeys(): string[];
문자열 배열을 반환한다.
getRegistry()
static getRegistry(): {sections: string[]; runnables: Runnable[]};
Registry 객체를 반환한다.
getRunnable()
static getRunnable(appKey: string): Runnable | undefined;
Runnable 객체를 반환한다.
매개변수:
이름 | 타입 |
---|---|
appKey 필수 | string |
getSectionKeys()
static getSectionKeys(): string[];
문자열 배열을 반환한다.
getSections()
static getSections(): Record<string, Runnable>;
Runnables 객체를 반환한다.
registerCancellableHeadlessTask()
static registerCancellableHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
taskCancelProvider: TaskCancelProvider,
);
UI 없이 실행되는 코드 조각인 헤드리스 태스크를 등록한다. 이 태스크는 취소가 가능하다.
매개변수:
이름 | 타입 | 설명 |
---|---|---|
taskKey Required | string | startHeadlessTask 호출 시 사용된 이 태스크 인스턴스의 네이티브 ID. |
taskProvider Required | TaskProvider | 네이티브 측에서 전달된 데이터를 인자로 받아 Promise를 반환하는 함수. Promise가 이행되거나 거부되면 네이티브 측에 이벤트가 통지되고, JS 컨텍스트를 파괴할 수 있다. |
taskCancelProvider Required | TaskCancelProvider | 인자를 받지 않고 void를 반환하는 함수. 취소 요청이 들어오면, taskProvider 가 실행 중인 함수는 최대한 빨리 작업을 마무리하고 반환해야 한다. |
registerComponent()
static registerComponent(
appKey: string,
getComponentFunc: ComponentProvider,
section?: boolean,
): string;
파라미터:
이름 | 타입 |
---|---|
appKey 필수 | string |
componentProvider 필수 | ComponentProvider |
section | boolean |
registerConfig()
static registerConfig(config: AppConfig[]);
파라미터:
이름 | 타입 |
---|---|
config 필수 | AppConfig[] |
registerHeadlessTask()
static registerHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
);
헤드리스 태스크를 등록한다. 헤드리스 태스크는 UI 없이 실행되는 코드 조각이다.
이 기능은 앱이 백그라운드에 있을 때 자바스크립트에서 태스크를 실행하는 방법이다. 예를 들어, 최신 데이터를 동기화하거나 푸시 알림을 처리하거나 음악을 재생하는 데 사용할 수 있다.
매개변수:
이름 | 타입 | 설명 |
---|---|---|
taskKey 필수 | string | startHeadlessTask 가 호출될 때 사용된 이 태스크 인스턴스의 네이티브 ID. |
taskProvider 필수 | TaskProvider | 네이티브 측에서 전달된 데이터를 유일한 인자로 받는 Promise를 반환하는 함수. Promise가 resolve되거나 reject되면 네이티브 측에 이 이벤트가 알려지고, JS 컨텍스트를 종료할지 결정할 수 있다. |
registerRunnable()
static registerRunnable(appKey: string, func: Runnable): string;
인자:
이름 | 타입 |
---|---|
appKey 필수 | string |
run 필수 | function |
registerSection()
static registerSection(
appKey: string,
component: ComponentProvider,
);
매개변수:
이름 | 타입 |
---|---|
appKey 필수 | string |
component 필수 | ComponentProvider |
runApplication()
static runApplication(appKey: string, appParameters: any): void;
JavaScript 번들을 로드하고 앱을 실행한다.
매개변수:
이름 | 타입 |
---|---|
appKey 필수 | string |
appParameters 필수 | any |
setComponentProviderInstrumentationHook()
static setComponentProviderInstrumentationHook(
hook: ComponentProviderInstrumentationHook,
);
인자:
이름 | 타입 |
---|---|
hook 필수 | function |
유효한 hook
함수는 다음과 같은 인자를 받아야 한다:
이름 | 타입 |
---|---|
component 필수 | ComponentProvider |
scopedPerformanceLogger 필수 | IPerformanceLogger |
이 함수는 반드시 React 컴포넌트를 반환해야 한다.
setWrapperComponentProvider()
static setWrapperComponentProvider(
provider: WrapperComponentProvider,
);
인자:
이름 | 타입 |
---|---|
provider 필수 | ComponentProvider |
startHeadlessTask()
static startHeadlessTask(
taskId: number,
taskKey: string,
data: any,
);
네이티브 코드에서만 호출된다. 헤드리스 태스크를 시작한다.
매개변수:
이름 | 타입 | 설명 |
---|---|---|
taskId Required | number | 태스크 실행을 추적하기 위한 네이티브 ID. |
taskKey Required | string | 시작할 태스크의 키. |
data Required | any | 태스크에 전달할 데이터. |
unmountApplicationComponentAtRootTag()
static unmountApplicationComponentAtRootTag(rootTag: number);
뷰가 파괴되어야 할 때 애플리케이션을 중지한다.
인자:
이름 | 타입 |
---|---|
rootTag 필수 | number |
타입 정의
AppConfig
registerConfig
메서드를 위한 애플리케이션 설정.
타입 |
---|
object |
속성:
이름 | 타입 |
---|---|
appKey 필수 | string |
component | ComponentProvider |
run | function |
section | boolean |
참고: 모든 설정은
component
또는run
함수 중 하나를 반드시 설정해야 한다.
레지스트리
타입 |
---|
객체 |
속성:
이름 | 타입 |
---|---|
runnables | Runnables 배열 |
sections | 문자열 배열 |
실행 가능 객체
타입 |
---|
객체 |
속성:
이름 | 타입 |
---|---|
component | 컴포넌트 프로바이더 |
run | 함수 |
실행 가능 객체
appKey
를 키로 가지고 Runnable
타입을 값으로 가지는 객체를 의미한다.
타입 |
---|
객체 |
Task
Task
는 어떤 데이터든 인자로 받아서 undefined
로 이행되는 Promise를 반환하는 함수다.
타입 |
---|
function |
TaskCanceller
TaskCanceller
는 인자를 받지 않고 반환 값도 없는 함수 타입이다.
타입 |
---|
function |
TaskCancelProvider
유효한 TaskCancelProvider
는 TaskCanceller
를 반환하는 함수다.
타입 |
---|
function |
TaskProvider
유효한 TaskProvider
는 Task
를 반환하는 함수이다.
타입 |
---|
function |