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 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_debug_value_(value: a, format: fn(a) -> String) -> Nil
커스텀 훅 디버그 값 + 포맷 함수
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_cleanup(setup: fn() -> fn() -> Nil) -> Nil
마운트 시 한 번만 실행 + cleanup
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_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_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 통합용)