Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: reducer, state, функция

Что такое чистые функции в контексте Redux?

Этот вопрос проверяет понимание концепции чистых функций и их ключевой роли в работе Redux

Короткий ответ

Чистые функции — это функции, которые всегда возвращают одно и то же значение для одних и тех же входных данных и не имеют побочных эффектов. В Redux редьюсеры должны быть чистыми функциями, чтобы изменения состояния были предсказуемыми и легко тестируемыми.

Длинный ответ

Чистые функции — это функции, которые удовлетворяют двум основным критериям:

  • Определенность: Для одних и тех же входных данных результат всегда одинаков.

  • Отсутствие побочных эффектов: Функция не изменяет внешние данные и не вызывает внешние действия, такие как запросы к API или изменение DOM.

В Redux редьюсеры (reducers) — это чистые функции, которые отвечают за обновление состояния приложения. Они принимают текущее состояние и действие и возвращают новое состояние, не изменяя существующее. Это позволяет:

  • Гарантировать предсказуемость изменений состояния.

  • Легко тестировать редьюсеры, проверяя, что для заданного входа они всегда возвращают ожидаемый выход.

  • Работать с такими инструментами, как Redux DevTools, для отслеживания и воспроизведения изменений состояния.

Пример:

// Чистая функция: предсказуемое поведение и отсутствие побочных эффектов
function counterReducer(state = 0, action) {
	switch (action.type) {
		case 'INCREMENT':
			return state + 1;
		case 'DECREMENT':
			return state - 1;
		default:
			return state;
	}
}
// Нечистая функция: вызывает побочные эффекты
function impureReducer(state = 0, action) {
	if (action.type === 'INCREMENT') {
		console.log('Incrementing count'); // Побочный эффект
		return state + 1;
	}
	return state;
}

Чистота редьюсеров упрощает работу в командной разработке и помогает соблюдать основные принципы Redux. Например, побочные эффекты (такие как API-запросы) выносятся в middleware, например, redux-thunk или redux-saga.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Redux

    Redux

Ключевые слова

#reducer

#state

#функция

Подпишись на React Developer в телеграм