컨텍스트 API 사용 방법
– React 애플리케이션에서 전 세계적으로 데이터 공유 및 관리이를 수행하는 방법을 제공합니다(간편한 전역 상태 관리 허용).
– 부모 -> 자식 데이터를 구성 요소에 전달할 때 소품을 전달하지 않고도 구성 요소 간에 데이터를 공유할 수 있습니다.
1. UserContext.js 파일 생성
– createContext function import : 새로운 Context를 생성할 때 사용하는 기능
– 초기 값을 null로 지정하고 다른 구성 요소에서 사용하기 위해 내보냅니다.
import { createContext } from “react”;
내보내기 const UserContext = createContext(null)
2. App.js(상위)
– UserContext 컴포넌트 가져오기
‘./components/UserContext에서 { UserContext } 가져오기
const (user, setUser) = useState('');
return (
<UserContext.Provider value={{user, setUser}}>
<div className="App">
<HeaderPage/>
<Switch>
<Route path="/" component={HomePage} exact={true}/>
<Route path="/users" component={UsersPage}/>
<Route path="/chats" component={ChatsPage}/>
<Route path="/login" component={LoginPage}/>
</Switch>
</div>
</UserContext.Provider>
);
– 상태 변수(user, setUser)를 생성하고 ‘ ‘(비어 있음)을 초기값으로 설정합니다.
– UserContext.ProviderUserContext라는 컨텍스트 개체를 사용하여 하위 구성 요소에 데이터 전달 ( componentname.vendor )
– 전송할 데이터를 지정하여 value 속성을 통해 전송된 user 및 setUser를 사용할 수 있습니다.
3. 자식(자식) 구성 요소에서 useContext 사용
– useContext 후크, UserContext 컴포넌트 가져오기
‘반응’에서 {useContext} 가져오기
import { UserContext } from ‘./UserContext’;
const {user, setUser} = useContext(UserContext);
– UserContext.provider로 전송된 값(user, setUser)은 애플리케이션 전체에서 사용할 수 있습니다.
– useContext 후크를 사용하여 userContext 값을 반환하고 분해합니다.
문맥의 차이 <-> 소품
문맥 | 소품 |
React 구성 요소 간에 전역 상태를 공유하는 데 사용되는 메커니즘 | 구성 요소 간에 데이터를 전달하는 기본 방법 |
데이터는 상위 구성 요소에서 하위 구성 요소로 간접적으로 전파될 수 있습니다. (가운데 부품은 생략가능) |
부모 -> 자식 컴포넌트의 데이터를 직접 전달 (상호작용이 명확하고 직접적일 때 사용) |
여러 애플리케이션에서 공유하는 데이터에 액세스해야 하는 경우 전역 상태 관리에 유용합니다. | 읽기 전용이므로 상위 구성 요소에서 전달된 props는 하위 구성 요소에서 수정할 수 없습니다. |
그것은 드릴링에서 지원을 방지할 수 있습니다. -> 코드 구조를 단순화하고 유지보수가 쉬운 전역 상태 구현 |
데이터가 모든 중간 구성 요소를 통해 명시적으로 라우팅되어야 하는 경우를 소품 드릴링이라고 합니다. |