[React] Funnel 컴포넌트

2024. 3. 7. 13:57·React/실험실
반응형

이번 과제를 진행할 때 Funnel 컴포넌트를 사용해서 만들어야 했다. 

근데 중요한 사실... 넥스트스텝 선생님들,,,, 저는 Funnel 컴포넌트가 몬지 몰라요 ...ㅠㅠㅠ

 

지금까지의 문제

설문 조사를 위해서 페이지별로 사용자에게 정보를 전달받아 마지막에 API로 전송하는 기능을 

만든다고 생각해보자 

설문지 1페이지, 2페이지, 3페이지, 전송 플로우 이미지

이런 종류의 페이지는 

설문 페이지의 상태를 관리하기 위해서 Context API & Redux 등 전역 상태 관리 &  라우팅 이동 플로우

사진으로 보는 것처럼 각 페이지에서 상태를 관리하고 싶지 않다면 Context API, Redux 같은 전역 상태 관리를 하고 

각각의 페이지가 구현된 파일을 돌아다니면서 관리해야 한다. 

 

결국 한 가지 목적을 위해서 상태가 흩어져 있다는 것이다. 

기능이 추가되거나 오류가 발생했을 때 전체 페이지를 넘나들면서 오류를 수정해야 한다. 

 

Funnel 컴포넌트 

사용자가 최종 목표까지 가는동안 조금씩 이탈하기 때문에 깔때기와 같은 모양이라서 

Funnel ( 사전적 의미 : 깔때기 ) 이라는 이름이 붙여졌다. 

 

여러 페이지를 통해 상태를 수집하고 결과 페이지를 보여주는 형태를 의미한다. 

[Funnel 패턴을 적용한 플로우] 전체 상태를 두고 페이지 이동이 아닌 state으로 페이지 관리

 

UI 는 [설문지 1페이지] 등 각 페이지에서 담당하고 페이지 이동은 상위 컴포넌트에서 State로 관리하는 방식이다. 

 

또한 전역 상태관리가 아니라 상위 컴포넌트에서 입력을 관리하므로 수정사항이 발생했을 때 전체 페이지를

보는 것이 아닌 공통의 부모 컴포넌트까지의 범위를 가지고 있으므로 상태 관리도 쉽다. 

 

가장 대표적으로 Toss의 useFunnel 커스텀 훅이 있다. 

반응형
저작자표시 비영리 변경금지

'React > 실험실' 카테고리의 다른 글

[React] Controlled and UnControlled Input  (0) 2024.03.14
[React] TDD, 클린 코드 with React 3기 - 1주차  (0) 2024.03.09
[React] PWA 그것은 무엇인가?  (0) 2024.03.03
[React] Vite 환경 구성하기  (0) 2024.02.28
[React] Atomic Design Pattern + Headless UI Pattern  (1) 2024.01.07
'React/실험실' 카테고리의 다른 글
  • [React] Controlled and UnControlled Input
  • [React] TDD, 클린 코드 with React 3기 - 1주차
  • [React] PWA 그것은 무엇인가?
  • [React] Vite 환경 구성하기
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    타입스크립트
    react
    영어회화
    네트워크
    리얼학습일기
    webpack
    redux
    Node.js
    Docker
    자바스크립트
    덤프
    next.js
    바질
    영어독학
    리액트
    javascript
    네이버 부스트캠프
    다이소
    타일러영어
    CSS
    리얼클래스
    ReactNative
    프로그래머스
    식물
    알고리즘
    CCNA
    바질 키우기
    ChatGPT
    typescript
    Babel
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] Funnel 컴포넌트
상단으로

티스토리툴바