flemo

API Reference

`@flemo/react`의 안정적인 공개 API 표면과 각 항목을 설명하는 페이지

컴포넌트

Export요약패키지자세히
Router루트 컨테이너. 활성 화면을 렌더해요.@flemo/reactRouter
Route경로(또는 경로 배열)를 element와 연결해요.@flemo/reactRouter
Screen라우트별 화면 컨테이너. 앱·내비·안전 영역 슬롯을 가져요.@flemo/reactScreen
LayoutScreen화면 사이 layoutId 모핑을 지원하는 Screen 변형.@flemo/react-layoutLayoutScreen
LayoutConfigmotion 자식을 현재 화면의 전환 타이밍으로 감싸요.@flemo/react-layoutLayoutScreen

Export반환자세히
useNavigate(){ push, replace, pop }Navigation
useParams<T>()현재 라우트의 파라미터 (경로 + 쿼리 병합)Navigation
useStep<T>()sub-state 전환용 { pushStep, replaceStep, popStep }Navigation
useScreen()현재 화면의 메타 (id, isActive, zIndex …)useScreen
useViewportScrollHeight()visualViewport 기반 스크롤 정보. 모바일 키보드 처리에 유용해요.

useScreen

useScreen()은 호출한 컴포넌트가 속한 화면의 메타데이터를 반환해요. context에서 읽으므로 <Route> element의 트리 안(활성 화면, 또는 그 아래에 아직 마운트된 화면)에서 호출하세요.

필드타입설명
idstring화면의 history 엔트리 id
isActiveboolean현재(top) 화면인지 여부
isRootboolean루트 화면(zIndex 0)인지 여부
isPrevboolean이전 화면보다 아래에 있는지 여부 (정지된 채 화면 밖)
zIndexnumber스택 깊이. 0이 루트, 클수록 최신
pathnamestring이 화면의 resolved pathname
paramsobject이 화면의 라우트 파라미터
routePathstring매칭된 라우트 패턴 (예: /album/:id)
transitionNamestring현재 진행 중인 내비게이션의 전환
prevTransitionNamestringtop 한 칸 아래 화면의 전환
layoutIdstring | number | null전달된 layoutId (있다면)
function AlbumHeader() {
  const { isActive, zIndex, params } = useScreen();
  // 이 화면이 활성일 때 다르게 렌더하거나, 깊이를 읽을 수 있어요.
}

전환 팩토리

Export사용 시점
createTransition여섯 단계 전환 (idle / enter / exit / enterBack / exitBack)
createRawTransition모든 navigate 상태를 직접 제어
createDecorator네 단계 데코레이터 (initial / idle / enter / exit)
createRawDecorator상태별 완전 제어가 가능한 데코레이터

예제는 Transitions에 있어요.

내장 전환 이름

"cupertino" · "material" · "layout" · "none"

내장 데코레이터 이름

"overlay"

타입 레지스트리

인터페이스용도
RegisterRoute라우트 등록. navigate.push, useParams의 타입 안전
RegisterTransition커스텀 전환 이름 등록
RegisterDecorator커스텀 데코레이터 이름 등록
declare module "@flemo/react" {
  interface RegisterRoute {
    /* … */
  }
  interface RegisterTransition {
    /* … */
  }
  interface RegisterDecorator {
    /* … */
  }
}

타입 export

ScreenProps · TransitionName · RegisterTransition · DecoratorName · RegisterDecorator

Peer dependencies

@flemo/reactreact ^19, react-dom ^19만 peer로 요구해요. @flemo/react-layoutmotion ^12를 추가 peer로 가져요. <LayoutScreen>이나 <LayoutConfig>를 쓸 때 같이 설치하세요.

On this page