Встречается на собеседованиях • сегодня

Почему в Redux reducer должен быть чистой функцией

Чистый редюсер гарантирует предсказуемость состояния. Он должен:

  1. Не мутировать входные данные (state и action)
  2. Не иметь побочных эффектов (API-вызовы, Math.random() и т.д.)
  3. Возвращать одинаковый результат для одинаковых аргументов

Пример:

javascript
// Чистая функция
const pureReducer = (state = 0, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return state + 1; // Новый state, а не мутация
    default:
      return state;
  }
};

// Нечистая функция (антипаттерн)
const impureReducer = (state = {count: 0}, action) => {
  state.count += 1; // Мутация!
  return state;
};

Redux полагается на иммутабельность для:

  • Определения изменений через сравнение ссылок
  • Работы time-travel debugging
  • Предсказуемости состояния приложения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы