<aside> 👊 Funnel 방식을 사용하자
</aside>
내가 생각한 구조 ⇒ 컴포넌트를 분할 후, state를 통하여 각 상태에 맞는 컴포넌트를 호출하고 차례대로 넘긴다. state와 여러 값들은 전역 상태로 관리한다.
이는 정석적인 설계이며 작동에도 문제가 없다.
그러나 유지보수적인 문제점이 존재
페이지 흐름이 흩어져 있음
목적을 위한 상태가 흩어짐
이를 개선해보자
Pages에 onboading페이지 선언 큰 흐름은 버튼 이벤트, 컴포넌트의 children, useFunnel을 통한 상태 관리. 상태에 따라 컴포넌트의 children을 렌더링하는 방식
상태에 따른 렌더링은 정석적인 방법과 같지만 컴포넌트를 나누고 커스텀 훅을 통해 상태를 관리, 그리고 모든 것은 하나의 컴포넌트에서 지역적으로 변경된다는 점이다.
<aside> 👊 useFunnel로 Funnel 컴포넌트의 상태를 관리한다. 내부에서는 step의 상태를 useState를 통하여 관리하여 Funnel에 반영하도록 한다.
</aside>