toss/use-funnel

복잡한 단계별 UI 플로우를 안전하게 구현하는 React 상태 관리 라이브러리

개발 재료맘대로 써도 됨 · MIT웹·Next.js·풀스택TypeScript난이도
567+0이번 주0
61포크7이슈
데모·홈페이지 열기use-funnel.slash.page

중간맛 분석

TypeScript 기반 React Hook으로, 강타입 지원을 통해 각 단계별 상태를 컴파일 단계에서 검증합니다. 브라우저 History, react-router, Next.js, @react-navigation/native 등 다양한 라우팅 라이브러리를 지원하며, 즉시 사용 가능한 예제와 상세한 문서를 제공합니다. 난이도 3~4 정도로 기본 React 경험이 있으면 충분합니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 온보딩 플로우나 회원가입 다단계 폼 구현
  • 결제·예약·신청 같은 복잡한 사용자 여정 관리
  • 모달·바텀시트 같은 오버레이 기반 다단계 UI 구성

핵심 기능

강타입 지원으로 각 단계별 필수 상태 자동 검증히스토리 기반 상태 관리로 앞뒤 네비게이션 자동 처리브라우저·react-router·Next.js·react-navigation 등 다양한 라우터 지원

대안 대비 차별점

타입 안전성을 최우선으로 하여 단계별 상태 전환을 컴파일 단계에서 검증하고, 히스토리 기반 설계로 복잡한 분기 로직을 직관적으로 관리할 수 있습니다.

준비물

  • React 18 이상
  • TypeScript 4.9 이상 (강타입 지원 권장)

바로 시작하기

npm install @use-funnel/browser
  1. TypeScript에서 다단계 플로우 정의하기
import { useFunnel } from '@use-funnel/browser';

const funnel = useFunnel<{
  Step1: { value1?: string };
  Step2: { value1: string; value2?: string };
  Step3: { value1: string; value2: string };
}>({
  id: 'my-funnel',
  initial: { step: 'Step1', context: {} },
});
  1. 렌더링 컴포넌트 구성하기
<funnel.Render
  Step1={({ history }) => (
    <button onClick={() => history.push('Step2', { value1: 'test' })}>
      다음
    </button>
  )}
  Step2={({ history, context }) => (
    <div>{context.value1}</div>
  )}
  Step3={({ context }) => (
    <div>완료: {context.value1}, {context.value2}</div>
  )}
/>
  1. 라우터에 맞게 초기화하기 (Next.js 예)
import { useFunnel } from '@use-funnel/next';
// react-router: @use-funnel/react-router
// react-navigation: @use-funnel/react-navigation

별 추이 · 7일

567+0 / 7일

활용성 · 따라 만들기 좋은가

따라 하기 좋음샘플 점수 36/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

⚪ 최근 활동 정보 없음 · 2024년 생성

이 레포에 깃밥 배지 달기

[![깃밥](https://www.gitbap.com/badge/toss/use-funnel.svg)](https://www.gitbap.com/r/toss/use-funnel)

🔌 클로드에서 바로 써보기

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.

방법 ① 커넥터 URL

클로드 설정 → 커넥터에 이 주소를 붙여넣기.

https://www.gitbap.com/api/mcp
방법 ② 플러그인 (체험까지)

플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기