이 문서는 AI에 의해 번역되었습니다. 정확한 정보는 영어 버전을 참조하세요.
React 엘리먼트, HTML 문자열 또는 DOM 노드를 지정된 컨테이너에 렌더링합니다. container를 전달하지 않으면 기본적으로 ctx.element에 렌더링되며, 애플리케이션의 ConfigProvider, 테마 등 컨텍스트를 자동으로 상속합니다.
| 시나리오 | 설명 |
|---|---|
| JSBlock | 블록 사용자 정의 콘텐츠(차트, 목록, 카드 등) 렌더링 |
| JSField / JSItem / JSColumn | 편집 가능한 필드 또는 테이블 컬럼의 사용자 정의 표시 렌더링 |
| 상세 블록 | 상세 페이지 필드의 표시 형식 사용자 정의 |
주의:
ctx.render()는 렌더링 컨테이너가 필요합니다.container를 전달하지 않고ctx.element가 존재하지 않는 경우(UI가 없는 순수 로직 시나리오 등) 에러가 발생합니다.
| 파라미터 | 타입 | 설명 |
|---|---|---|
vnode | React.ReactElement | Node | DocumentFragment | string | 렌더링할 내용 |
container | Element | DocumentFragment (선택 사항) | 렌더링 대상 컨테이너, 기본값은 ctx.element |
반환값:
root.render()를 호출하여 업데이트할 수 있도록 ReactDOMClient.Root를 반환합니다.null을 반환합니다.| 타입 | 동작 |
|---|---|
React.ReactElement (JSX) | React의 createRoot를 사용하여 렌더링하며, 전체 React 기능을 지원하고 애플리케이션 컨텍스트를 자동으로 상속합니다. |
string | DOMPurify로 정제한 후 컨테이너의 innerHTML을 설정합니다. 기존 React 루트는 먼저 언마운트(unmount)됩니다. |
Node (Element, Text 등) | 컨테이너를 비운 후 appendChild로 추가합니다. 기존 React 루트는 먼저 언마운트됩니다. |
DocumentFragment | 프래그먼트의 자식 노드들을 컨테이너에 추가합니다. 기존 React 루트는 먼저 언마운트됩니다. |
ctx.render()를 호출할 때마다 컨테이너의 기존 내용을 교체하며, 추가되지 않습니다.ctx.element.innerHTML은 더 이상 권장되지 않으며(deprecated), 일관되게 ctx.render()를 사용해야 합니다.ctx.element가 undefined인 시나리오(ctx.importAsync로 로드된 모듈 내부 등)에서는 container를 명시적으로 전달해야 합니다.ctx.render()에 container가 전달되지 않았을 때 사용됩니다.ctx.render()와 함께 사용합니다.