Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: reducer, store, redux-toolkit

Что такое createReducer и как его использовать?

Этот вопрос проверяет понимание утилиты createReducer из Redux Toolkit и её роли в упрощении работы с редьюсерами.

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

createReducer — это функция из Redux Toolkit, которая помогает создавать редьюсеры без необходимости вручную определять типы действий. Она принимает объект с состоянием и действиями, и каждый редьюсер обновляет состояние в зависимости от типа действия. Это позволяет писать редьюсеры более компактно и эффективно.

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

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

Как работает createReducer:

createReducer принимает два аргумента:

  • Начальное состояние.

  • Объект, где ключами являются типы действий, а значениями — функции, изменяющие состояние.

  • Для каждого типа действия редьюсер будет вызывать соответствующую функцию.

Пример использования createReducer:

import { createReducer } from '@reduxjs/toolkit';
const initialState = [];
const todosReducer = createReducer(initialState, {
	ADD_TODO: (state, action) => {
		state.push(action.payload); // Добавление задачи
	},
	REMOVE_TODO: (state, action) => {
		return state.filter(todo => todo.id !== action.payload); // Удаление задачи
	}
});
export default todosReducer;

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

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

  • Автоматическая иммутабельность: Внутри редьюсера применяется библиотека Immer, которая позволяет изменять состояние "мутируемо", но фактически оно остается неизменным.

  • Гибкость: Вы можете добавлять любые действия и изменять состояние в одной функции, что упрощает поддержку.

Как использовать в store:

import { configureStore } from '@reduxjs/toolkit';
import todosReducer from './todosReducer';
const store = configureStore({
	reducer: {
		todos: todosReducer
	}
});

createReducer идеален для случаев, когда нужно создать редьюсер без явного указания типов действий и хочется избавиться от шаблонного кода. Это делает код проще, чище и легче поддерживаемым, особенно для крупных проектов.

Уровень

  • Рейтинг:

    1

  • Сложность:

    3

Навыки

  • Redux

    Redux

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

#reducer

#store

#redux-toolkit

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