useContext
자식 컴포넌트에서 부모 컴포넌트에서 전달된 컨텍스트 데이터사용시 Consumer 컴포넌트를 사용하지 않고 쓸수 있다.
훅 없이 컨텍스트 데이터 받기
부모컴포넌트
import React, { createContext } from 'react';
import Child from './Child';
export const UserContext = createContext();
const user = { name: 'A', age: 20 };
function App() {
return (
<div className="App">
<UserContext.Provider value={user}>
<Child />
</UserContext.Provider>
</div>
);
}
export default App;
자식컴포넌트 Consumer 컴포넌트를 사용해야한다. 1번영역에서 컨텍스트 데이터를 쓸 수 없다.
const Child = () => {
//1
return (
<div>
<UserContext.Consumer>
{(user) => {
console.log(user);
}}
</UserContext.Consumer>
</div>
);
};
export default Child;
useContext 훅으로 컨텍스트 데이터 받기
import React, { useContext } from 'react';
import { UserContext } from './App';
const Child = () => {
//1
const user = useContext(UserContext);
return (
<div>
{user.name}
{user.age}
</div>
);
};
export default Child;
1번영역에서 컨텍스트 데이터 사용가능
Last updated
Was this helpful?