useReducer

쌍제이(JJVoiture)·2022년 3월 30일
0
post-custom-banner

useState와 마찬가지로 상태 관리를 할 때 사용된다.

const [state, dispatch] = useReducer(reducer, initialState);

reducer 함수를 따로 정의해야 한다.

const initialState = {count: 0};

function reducer(state, action) {
  switch (action.type) {
    case 'increment':
      return {count: state.count + 1};
    case 'decrement':
      return {count: state.count - 1};
    default:
      throw new Error();
  }
}

function Counter() {
  const [state, dispatch] = useReducer(reducer, initialState);
  return (
    <>
      Count: {state.count}
      <button onClick={() => dispatch({type: 'decrement'})}>-</button>
      <button onClick={() => dispatch({type: 'increment'})}>+</button>
    </>
  );
}

state가 previous state에 크게 의존하거나 state가 복잡한 경우에는 useState보다 useReducer를 사용하는 것이 좋다.

profile
안녕하세요. 중구난방 개발자 쌍제이입니다.
post-custom-banner

0개의 댓글