Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: state, observer

Как работает хранилище (store) в Redux?

Этот вопрос проверяет понимание роли хранилища (store) в Redux, его назначения и работы.

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

Хранилище (store) в Redux управляет состоянием всего приложения. Оно предоставляет методы для получения текущего состояния (getState), отправки действий (dispatch) и подписки на изменения (subscribe). Хранилище связывает редьюсеры с действиями, чтобы обновлять состояние.

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

Хранилище (store) — это объект, который содержит состояние всего приложения и предоставляет API для работы с этим состоянием. Оно создается с помощью функции createStore и принимает редьюсер как аргумент.

Основные методы хранилища:

  • getState:
    Возвращает текущее состояние приложения.

    const state = store.getState();
    console.log(state);
  • dispatch:
    Используется для отправки действий. После вызова dispatch, редьюсеры обрабатывают действие и возвращают обновленное состояние.

    store.dispatch({ type: 'INCREMENT' });
  • subscribe:
    Позволяет подписаться на изменения состояния. Каждый раз, когда состояние обновляется, вызывается переданная функция.

    const unsubscribe = store.subscribe(() => {
      console.log('State updated:', store.getState());
    });
    // Чтобы отменить подписку:
    unsubscribe();

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

import { createStore } from 'redux';
// Редьюсер
function counterReducer(state = 0, action) {
	switch (action.type) {
		case 'INCREMENT':
			return state + 1;
		case 'DECREMENT':
			return state - 1;
		default:
			return state;
	}
}
// Создание хранилища
const store = createStore(counterReducer);
// Подписка на изменения
store.subscribe(() => {
	console.log('Текущее состояние:', store.getState());
});
// Отправка действий
store.dispatch({ type: 'INCREMENT' });
store.dispatch({ type: 'DECREMENT' });

Хранилище обеспечивает:

  • Централизованное состояние: Все данные хранятся в одном месте.

  • Предсказуемость: Изменения состояния происходят только через действия и редьюсеры.

  • Возможность отслеживания: Благодаря методам subscribe и инструментам, таким как Redux DevTools.

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Redux

    Redux

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

#state

#observer

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