glendix/react/hook

Types

폼 제출 상태 객체

pub type FormStatus

Values

pub fn form_action(
  status: FormStatus,
) -> option.Option(dynamic.Dynamic)

폼의 action 함수 참조 (없으면 None)

pub fn form_data(
  status: FormStatus,
) -> option.Option(dynamic.Dynamic)

제출된 FormData (제출 중이 아닌 경우 None)

pub fn form_method(status: FormStatus) -> String

HTTP 메서드 (get 또는 post)

pub fn form_pending(status: FormStatus) -> Bool

폼이 현재 제출 중인지 여부

pub fn get_ref(ref: react.Ref(a)) -> a

ref 현재 값 읽기 @deprecated — glendix/react/ref.current 사용 권장

pub fn set_ref(ref: react.Ref(a), value: a) -> Nil

ref 현재 값 설정 @deprecated — glendix/react/ref.assign 사용 권장

pub fn use_action_state(
  action: fn(state, payload) -> state,
  initial_state: state,
) -> #(state, fn(payload) -> Nil, Bool)

폼 액션 기반 상태 관리 (React 19) action(현재상태, 페이로드) -> 새상태, 반환: #(상태, 폼액션, isPending)

pub fn use_async_transition() -> #(
  Bool,
  fn(fn() -> react.Promise(Nil)) -> Nil,
)

비동기 트랜지션 (React 19) — startTransition이 async 콜백 수용

pub fn use_callback(
  callback: fn(a) -> b,
  deps: List(c),
) -> fn(a) -> b

메모이제이션된 콜백

pub fn use_context(context: react.Context(a)) -> a

Context 값 읽기

pub fn use_debug_value(value: a) -> Nil

커스텀 훅 디버그 값 (React DevTools에 표시)

pub fn use_debug_value_(value: a, format: fn(a) -> String) -> Nil

커스텀 훅 디버그 값 + 포맷 함수

pub fn use_deferred_value(value: a) -> a

값 지연 처리

pub fn use_effect(effect_fn: fn() -> Nil, deps: List(a)) -> Nil

의존성 배열과 함께 실행

pub fn use_effect_always(effect_fn: fn() -> Nil) -> Nil

매 렌더링마다 실행 (deps 없음)

pub fn use_effect_always_cleanup(
  setup: fn() -> fn() -> Nil,
) -> Nil

매 렌더링마다 실행 + cleanup

pub fn use_effect_cleanup(
  setup: fn() -> fn() -> Nil,
  deps: List(a),
) -> Nil

의존성 배열과 함께 실행 (cleanup 함수 반환)

pub fn use_effect_once(effect_fn: fn() -> Nil) -> Nil

마운트 시 한 번만 실행 (deps = [])

pub fn use_effect_once_cleanup(setup: fn() -> fn() -> Nil) -> Nil

마운트 시 한 번만 실행 + cleanup

pub fn use_form_status() -> FormStatus

가장 가까운

부모의 제출 상태 반환 (React 19)

pub fn use_id() -> String

SSR-safe 고유 ID 생성

pub fn use_imperative_handle(
  ref: react.Ref(a),
  create: fn() -> a,
  deps: List(b),
) -> Nil

부모에게 노출하는 ref 인스턴스 커스터마이징

pub fn use_insertion_effect(
  effect_fn: fn() -> Nil,
  deps: List(a),
) -> Nil

의존성 배열과 함께 삽입 이펙트 실행

pub fn use_insertion_effect_always(effect_fn: fn() -> Nil) -> Nil

매 렌더링마다 삽입 이펙트 실행 (deps 없음)

pub fn use_insertion_effect_always_cleanup(
  setup: fn() -> fn() -> Nil,
) -> Nil

매 렌더링마다 삽입 이펙트 실행 + cleanup

pub fn use_insertion_effect_cleanup(
  setup: fn() -> fn() -> Nil,
  deps: List(a),
) -> Nil

의존성 배열과 함께 삽입 이펙트 실행 (cleanup 함수 반환)

pub fn use_insertion_effect_once(effect_fn: fn() -> Nil) -> Nil

마운트 시 한 번만 삽입 이펙트 실행 (deps = [])

pub fn use_insertion_effect_once_cleanup(
  setup: fn() -> fn() -> Nil,
) -> Nil

마운트 시 한 번만 삽입 이펙트 실행 + cleanup

pub fn use_layout_effect(
  effect_fn: fn() -> Nil,
  deps: List(a),
) -> Nil

의존성 배열과 함께 레이아웃 이펙트 실행

pub fn use_layout_effect_always(effect_fn: fn() -> Nil) -> Nil

매 렌더링마다 레이아웃 이펙트 실행 (deps 없음)

pub fn use_layout_effect_always_cleanup(
  setup: fn() -> fn() -> Nil,
) -> Nil

매 렌더링마다 레이아웃 이펙트 실행 + cleanup

pub fn use_layout_effect_cleanup(
  setup: fn() -> fn() -> Nil,
  deps: List(a),
) -> Nil

의존성 배열과 함께 레이아웃 이펙트 실행 (cleanup 함수 반환)

pub fn use_layout_effect_once(effect_fn: fn() -> Nil) -> Nil

마운트 시 한 번만 레이아웃 이펙트 실행 (deps = [])

pub fn use_layout_effect_once_cleanup(
  setup: fn() -> fn() -> Nil,
) -> Nil

마운트 시 한 번만 레이아웃 이펙트 실행 + cleanup

pub fn use_lazy_state(init_fn: fn() -> a) -> #(a, fn(a) -> Nil)

지연 초기화 useState (비싼 초기값 계산 방지, init_fn은 마운트 시 한 번만 호출)

pub fn use_lazy_state_(
  init_fn: fn() -> a,
) -> #(a, fn(fn(a) -> a) -> Nil)

지연 초기화 useState + 업데이터 함수 변형

pub fn use_memo(compute: fn() -> a, deps: List(b)) -> a

메모이제이션된 값 계산

pub fn use_optimistic(state: a) -> #(a, fn(a) -> Nil)

낙관적 UI 업데이트

pub fn use_optimistic_(
  state: a,
  update_fn: fn(a, b) -> a,
) -> #(a, fn(b) -> Nil)

낙관적 UI 업데이트 (리듀서 변형 — 업데이트 함수로 병합 로직 지정)

pub fn use_promise(promise: react.Promise(a)) -> a

Suspense 경계 내에서 Promise를 소비하여 값을 반환 Promise가 미완료 시 React가 Suspense 폴백을 표시한다

pub fn use_reducer(
  reducer: fn(state, action) -> state,
  initial: state,
) -> #(state, fn(action) -> Nil)

리듀서 기반 상태 관리

pub fn use_reducer_(
  reducer: fn(state, action) -> state,
  initial_arg: a,
  init: fn(a) -> state,
) -> #(state, fn(action) -> Nil)

리듀서 기반 상태 관리 (지연 초기화 — init(initial_arg)로 초기 상태 생성)

pub fn use_ref(initial: a) -> react.Ref(a)

ref 생성

pub fn use_ref_() -> react.Ref(option.Option(a))

초기값 없는 ref 생성 (None으로 초기화)

pub fn use_state(initial: a) -> #(a, fn(a) -> Nil)

상태 훅. #(현재값, 세터함수) 튜플 반환

pub fn use_state_(initial: a) -> #(a, fn(fn(a) -> a) -> Nil)

useState 업데이터 함수 변형 (stale closure 방지) 세터에 fn(prev) -> next 형태의 업데이터 함수를 전달

pub fn use_sync_external_store(
  subscribe: fn(fn() -> Nil) -> fn() -> Nil,
  get_snapshot: fn() -> a,
) -> a

외부 스토어 구독 (Redux/Zustand 통합용)

pub fn use_transition() -> #(Bool, fn(fn() -> Nil) -> Nil)

비긴급 상태 업데이트 표시

Search Document