bigboom1253 / simple-todo

0 stars 0 forks source link

Todo Provider 사용부분 #4

Open cslim0527 opened 12 months ago

cslim0527 commented 12 months ago

현재 코드는 todo app 하나만을 위한 프로젝트여서 전역 레벨에 TodoProvider 를 사용했다고 생각하는데요 이 프로젝트에 다른 코드가 추가 된다면 TodoProvider 로 부터 모든 컴포넌트가 영향을 받는 구조가 될수있겠습니다.

따라서 provider 가 꼭 필요하다면 consumer 패턴으로 todo 에 해당하는 부분만 provider 로 묶는 방법도 고민해보는것은 어떨까요?

bigboom1253 commented 12 months ago
  <ThemeProvider>
    <AlertProvider>
      <TodoProvider>
        <Todo />
      </TodoProvider>
    </AlertProvider>
  </ThemeProvider>

넵! 이 부분에서 로 감싸지 않고, 내부에서 필요한 부분만 consumer 패턴으로 변경하는것이 확장성이나 응집도 측면에서 좋다는 것으로 이해했습니다.

저 한가지 궁금한 점은 실무코드도 그렇고, 뎁스가 같은곳에 Provider나 component가 한개씩만 들어가는 형식으로 구성되어있는데,

  <ThemeProvider>
    <AlertProvider>
      <TodoProvider>
        <Todo />
      </TodoProvider>
      <NewProvider>
         <NewComponet />
      <NewProvider>
    </AlertProvider>
  </ThemeProvider>

이런식으로 같은 뎁스에 여러개가 있는 방법은 지양되는것으로 이해하면될까요?

cslim0527 commented 11 months ago

먼저 진우님이 말씀하신 같은 뎁스에 여러개의 provider를 사용하는 케이스라면 어떤 경우 일까요? 개발 시 필요하다면 위 예제 처럼 provider를 동일 레벨에 두는것은 불가능한 내용이 아니지만 실무 프로젝트에서는 각 피쳐별로 필요한 provider는 해당 컴포넌트 레벨에서 공유해야할 컨텍스트를 제공하기 위해 만들어 질텐데 provider가 2개로 쪼개져 있다는것은 커스텀훅을 사용하여 두 provider 모두 필요없는 개발을 할수 있지 않을까 생각합니다.