#13CouplingMedium

Props Drilling → Context / Composition

Props Drilling — 5층을 뚫고 내려가는 prop

user 객체가 App → Page → Layout → Header → UserMenuLayout → Sidebar → Avatar, Page → Content → UserProfile여러 단계 를 뚫고 내려갑니다. 중간 컴포넌트들은 user쓰지도 않는데 단지 자식에게 넘기려고 받음. user 타입이 바뀌면 모든 중간 컴포넌트가 같이 변경됨.

할 일

  1. UserContext 를 만들어서 App 에서 한 번 provider 로 감싸고
  2. 실제로 user를 쓰는 컴포넌트 (UserMenu, Avatar, UserProfile) 에서만 useContext 로 가져오기
  3. 중간 컴포넌트들 (Page, Layout, Header, Sidebar, Content) 의 user prop 제거

좋은 fix

  • UserContext + UserProvider + useUser()
  • 또는 composition 패턴 (children 으로 받아서 위에서 직접 user 주입)

안 되는 fix

  • Context 만들고 모든 컴포넌트가 useContext (불필요한 곳까지)
  • prop 이름을 짧게 줄여서 "덜 보이게" 만 하기
Sandpack 로드 중…