리액트를 사용하다보면 props로 컴포넌트간의 값을 전달해줄때가 있는데
컴포넌트의 수가 많아지고 자식이 많아지면 그 값을 props로 전달하는데 한계가 있다
(오류가 났을때 디버깅시 오래걸릴 수 있기때문)
그래서 생겨난것이 useContext훅이고
컴포넌트를 하나 만든후 전역적으로 데이터값을 받아서 사용할 수 있기에 유지보수에 용이할 것으로 생각된다
SampleContext.js
import {createContext} from "react";
export const SampleContext = createContext(null);
app.js
import {SampleContext} from '경로'
function App(){
const [text,setText] = useState(false)
return (
<SampleContext.Provider value={text}>
<User />
</SampleContext.Provider>
)
}
import react,{useContext} from 'react'
import {SampleContext} from '경로'
const Use = () => {
const text = useContext(SampleContext)
return (
<div>
{text}
</div>
)
}
사용해보니 토이 프로젝트에서 react-router-dom을 사용했는데 여기선 routes들만 존재해야 한다는 오류가 떠서 아직 value값까지 설정해서 넘기진 못했는데
원하는 컴포넌트에 import해서 값을 띄워보는덴 성공했다
아직 토이프로젝트나 포폴용 작업같은 소규모 밖에 안해봐서 사용할일이 크게 없었는데 큰작업에서는 아주 편리하게 사용될것 같아 공부를 해두면 좋을것 같다는 생각이 들었다😎
글을 쓰는데 참고한 링크
https://youtu.be/LwvXVEHS638