todolist를 만들며 useReducer
와 useContext
를 사용하게 되어 정리해 보았다.
useState
와 함께 상태관리를 할때 사용하는 훅으로useContext
와 함께 사용하는 경우가 많다.
function reducer(state, action) {
return '변경된 state';
}
const [state, dispatch] = useReducer(reducer, 초기값);
순서대로 살펴보자면 reducer는 state를 인자로 받고 변경된 state를 반환한다.
action 객체는 주로 type값을 지닌 형태로 사용된다.
useReducer
에 reducer함수와 초기값을 넣어준다.
여기서 state는 컴포넌트에서 사용할 상태이고 dispatch는 action을 발생시키는 함수이다.
react에서 컴포넌트 트리 전체에 데이터를 제공할수 있게 해주는 hook
const AppContext = createContext();
const App = () => {
return (
<>
<Context.Provider value={...}>
{}
</Context.Provider>
</>
);
}
createContext
를 이용해서 Context를 만들고
Provider
로 생성한 context를 하위 컴포넌트에게 전달한다.
const context = useContext(AppContext);
app에서 Provider로 묶어주고 하위 컴포넌트에서 useContext
로 사용하고 싶은 context를 불러와서 사용하면 된다.