Open cslim0527 opened 12 months ago
<ThemeProvider>
<AlertProvider>
<TodoProvider>
<Todo />
</TodoProvider>
</AlertProvider>
</ThemeProvider>
넵! 이 부분에서
저 한가지 궁금한 점은 실무코드도 그렇고, 뎁스가 같은곳에 Provider나 component가 한개씩만 들어가는 형식으로 구성되어있는데,
<ThemeProvider>
<AlertProvider>
<TodoProvider>
<Todo />
</TodoProvider>
<NewProvider>
<NewComponet />
<NewProvider>
</AlertProvider>
</ThemeProvider>
이런식으로 같은 뎁스에 여러개가 있는 방법은 지양되는것으로 이해하면될까요?
먼저 진우님이 말씀하신 같은 뎁스에 여러개의 provider를 사용하는 케이스라면 어떤 경우 일까요? 개발 시 필요하다면 위 예제 처럼 provider를 동일 레벨에 두는것은 불가능한 내용이 아니지만 실무 프로젝트에서는 각 피쳐별로 필요한 provider는 해당 컴포넌트 레벨에서 공유해야할 컨텍스트를 제공하기 위해 만들어 질텐데 provider가 2개로 쪼개져 있다는것은 커스텀훅을 사용하여 두 provider 모두 필요없는 개발을 할수 있지 않을까 생각합니다.
현재 코드는 todo app 하나만을 위한 프로젝트여서 전역 레벨에 TodoProvider 를 사용했다고 생각하는데요 이 프로젝트에 다른 코드가 추가 된다면 TodoProvider 로 부터 모든 컴포넌트가 영향을 받는 구조가 될수있겠습니다.
따라서 provider 가 꼭 필요하다면 consumer 패턴으로 todo 에 해당하는 부분만 provider 로 묶는 방법도 고민해보는것은 어떨까요?