PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

Что такое useReducer?

Массивы и структуры данных

`useReducer` — это хук React для управления состоянием через редьюсер, когда логика обновления сложна или следующее состояние зависит от предыдущего. Альтернатива useState.

Синтаксис

const [state, dispatch] = useReducer(reducer, initialState);
  • reducer(state, action) — чистая функция, возвращающая новое состояние.
  • dispatch(action) — отправляет действие.

Пример

function reducer(state, action) {
  switch (action.type) {
    case 'increment': return { count: state.count + 1 };
    case 'reset':     return { count: 0 };
    default:          return state;
  }
}

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

useReducer против useState

  • useState — простое независимое состояние.
  • useReducer — сложное состояние с несколькими под-значениями, много типов обновлений, переходы зависят от предыдущего состояния.

Преимущества

  • Логика обновлений собрана в одном чистом редьюсере (тестируемо).
  • Предсказуемые переходы состояния.
  • dispatch стабилен между рендерами — удобно прокидывать глубоко.

Коротко для собеседования

useReducer управляет состоянием через чистый reducer и dispatch(action), как локальный Redux. Выбирают его вместо useState, когда состояние сложное, обновлений много и переходы зависят от предыдущего состояния.

Другие вопросы раздела