Learn Context in React 19
- React 19는 새로운 문법과
use 훅을 도입하여 기존 Context 튜토리얼을 구식으로 만들었습니다. 🆕
useContext 훅은 여전히 작동하지만, React 19의 새로운 use 훅이 더 강력하며 미래 지향적인 Context 소비 방식입니다. ✨
- Context는 데이터를 여러 컴포넌트 계층을 통해 전달해야 하는 'Prop Drilling' 문제를 효과적으로 해결합니다. 🔗
- 앱의 여러 곳에서 필요한 데이터(예: 사용자 인증 정보)를 깊이 중첩된 컴포넌트에 전달할 때 Context 사용이 가장 적합합니다. 🗺️
- Context Provider는
createContext로 Context를 생성하고, <MyContext value={...}>{children}</MyContext> 형태로 자식 컴포넌트를 감싸 데이터를 제공합니다. React 19에서는 .Provider 접미사가 사라졌습니다. 🏗️
createContext에 전달된 기본값은 Provider가 없을 때 Context 소비자가 받게 되는 폴백 값입니다. 의미 있는 기본값이 없으면 undefined를 사용할 수 있습니다. 🔠
- 동일한 Context Provider가 중첩될 경우, Context 소비자는 컴포넌트 트리에서 가장 낮은(가장 가까운) Provider의 값을 받습니다. 🌳
- Next.js와 같은 서버사이드 렌더링 프레임워크에서는
createContext를 클라이언트 컴포넌트에서만 사용할 수 있으므로 'use client' 지시문이 필요합니다. 🖥️
- Context는 단순한 문자열뿐만 아니라 사용자 객체, 로딩 상태, 비동기 함수 등 복잡한 데이터와 기능을 제공할 수 있습니다. 📦
- 사용자 인증과 같이 앱 전반에 걸쳐 필요한 데이터의 경우, Context Provider를
layout.tsx와 같이 컴포넌트 트리의 최상단에 배치하는 것이 좋습니다. 🌐
- 이 튜토리얼은 기존 앱에서 사용자 인증 관련 데이터(사용자, 로딩 상태, 로그아웃 함수)를 Prop Drilling 없이 Context Provider로 리팩토링하는 과정을 보여줍니다. 🛠️