glendix/react

Types

React 컴포넌트 참조

pub type Component

React Context 타입

pub type Context(a)

Mendix가 전달하는 props 객체

pub type JsProps

JS Promise 타입 (React.use()와 함께 사용)

pub type Promise(a)

React가 렌더링하는 요소

pub type ReactElement

React ref 객체

pub type Ref(a)

Values

pub fn component_el(
  comp: Component,
  attrs: List(a),
  children: List(ReactElement),
) -> ReactElement

속성 리스트 기반 React 컴포넌트 합성

pub fn component_el_(
  comp: Component,
  children: List(ReactElement),
) -> ReactElement

속성 없이 자식만으로 컴포넌트 요소 생성

pub fn create_context(default: a) -> Context(a)

Context 생성

pub fn define_component(
  name: String,
  render: fn(props) -> ReactElement,
) -> Component

이름 있는 React 컴포넌트 정의 (DevTools 표시, React.memo 가능)

pub fn element(
  tag: String,
  attrs: List(a),
  children: List(ReactElement),
) -> ReactElement

속성 리스트 기반 HTML 요소 생성

pub fn element_(
  tag: String,
  children: List(ReactElement),
) -> ReactElement

속성 없이 자식만으로 요소 생성

pub fn flush_sync(callback: fn() -> Nil) -> Nil

ReactDOM.flushSync — 동기 DOM 업데이트 강제 (상태 변경 후 DOM 측정 시 필요)

pub fn forward_ref(
  render: fn(props, Ref(a)) -> ReactElement,
) -> Component

React.forwardRef (부모 ref 전달)

pub fn fragment(children: List(ReactElement)) -> ReactElement

Fragment로 여러 자식을 감싸기

pub fn keyed(
  parent: fn(List(ReactElement)) -> ReactElement,
  content: List(#(String, ReactElement)),
) -> ReactElement

임의 부모 요소에 keyed children 전달 parent 함수에 key가 적용된 자식 리스트를 전달한다

pub fn keyed_fragment(
  key: String,
  children: List(ReactElement),
) -> ReactElement

key가 있는 Fragment

pub fn memo(component: Component) -> Component

React.memo 적용 (props 동일 시 리렌더 방지)

pub fn memo_(
  component: Component,
  are_equal: fn(a, a) -> Bool,
) -> Component

React.memo 커스텀 비교 함수 적용

pub fn none() -> ReactElement

null 렌더링 (아무것도 표시하지 않음)

pub fn portal(
  element: ReactElement,
  container: dynamic.Dynamic,
) -> ReactElement

ReactDOM.createPortal (모달/팝업 — 위젯 DOM 외부에 렌더링)

pub fn profiler(
  id: String,
  on_render: fn(String, String, Float, Float, Float, Float) -> Nil,
  children: List(ReactElement),
) -> ReactElement

React.Profiler (렌더링 성능 측정)

pub fn provider(
  context: Context(a),
  value: a,
  children: List(ReactElement),
) -> ReactElement

Provider 요소 생성

pub fn start_transition(callback: fn() -> Nil) -> Nil

React.startTransition (훅 없이 독립 함수로 사용)

pub fn strict_mode(children: List(ReactElement)) -> ReactElement

React.StrictMode (개발 모드 이중 렌더링 감지)

pub fn suspense(
  fallback: ReactElement,
  children: List(ReactElement),
) -> ReactElement

React.Suspense (비동기 경계)

pub fn text(content: String) -> ReactElement

텍스트 노드

pub fn void_component_el(
  comp: Component,
  attrs: List(a),
) -> ReactElement

self-closing 컴포넌트 (children 없음)

pub fn void_element(tag: String, attrs: List(a)) -> ReactElement

self-closing 요소 (input, img, br 등)

pub fn when(
  condition: Bool,
  element_fn: fn() -> ReactElement,
) -> ReactElement

Bool 기반 조건부 렌더링

pub fn when_some(
  option: option.Option(a),
  render_fn: fn(a) -> ReactElement,
) -> ReactElement

Option 기반 조건부 렌더링

Search Document