Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: state management, React, Redux alternatives, Context API, MobX, Zustand

Какие альтернативы Redux существуют?

Этот вопрос проверяет знание современных менеджеров состояния для React и их сравнение с Redux, что важно для выбора подходящего инструмента в проекте.

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

Основные альтернативы Redux включают встроенный Context API, MobX, Zustand, Recoil и Jotai. Context API подходит для простого глобального состояния без middleware. MobX использует реактивное программирование и более прост в настройке. Zustand — это минималистичная библиотека с хуками, популярная за свою простоту. Recoil и Jotai предлагают атомарное управление состоянием, хорошо интегрируясь с React. Выбор зависит от сложности проекта и предпочтений команды.

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

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

Встроенные решения: Context API

Context API — это нативная возможность React для передачи данных через дерево компонентов без пропсов. Он отлично подходит для простого глобального состояния, например, темы или данных пользователя. Однако он не оптимизирован для частых обновлений и может вызывать лишние ререндеры, если не комбинировать с useMemo или useReducer.

// Создание контекста
const ThemeContext = React.createContext('light');

// Провайдер в корне приложения
function App() {
  const [theme, setTheme] = useState('light');
  return (
    
      
    
  );
}

// Использование в дочернем компоненте
function Toolbar() {
  const { theme } = useContext(ThemeContext);
  return Текущая тема: {theme};
}

Библиотеки с реактивным подходом: MobX

MobX использует принципы реактивного программирования: вы объявляете наблюдаемые состояния, а библиотека автоматически отслеживает и обновляет зависящие компоненты. Это требует меньше шаблонного кода, чем Redux, и часто считается более интуитивным.

import { makeAutoObservable } from 'mobx';
import { observer } from 'mobx-react-lite';

// Создание хранилища
class CounterStore {
  count = 0;
  constructor() {
    makeAutoObservable(this);
  }
  increment() {
    this.count += 1;
  }
}

const store = new CounterStore();

// Компонент, реагирующий на изменения
const Counter = observer(() => {
  return (
    
      {store.count}
       store.increment()}>+
    
  );
});

Минималистичные решения: Zustand

Zustand — это небольшая библиотека, построенная на хуках React. Она позволяет создавать хранилища с минимальной настройкой, без необходимости в провайдерах. Состояние обновляется напрямую, а подписка на изменения происходит автоматически.

import create from 'zustand';

// Создание хранилища
const useStore = create((set) => ({
  bears: 0,
  increasePopulation: () => set((state) => ({ bears: state.bears + 1 })),
  removeAllBears: () => set({ bears: 0 }),
}));

// Использование в компоненте
function BearCounter() {
  const bears = useStore((state) => state.bears);
  const increase = useStore((state) => state.increasePopulation);
  return (
    
      {bears} медведей
      Добавить медведя
    
  );
}

Атомарные менеджеры состояния: Recoil и Jotai

Recoil (от Facebook) и Jotai (более легковесный аналог) представляют состояние как атомы — независимые кусочки, которые можно комбинировать. Это позволяет эффективно управлять производными состояниями и избегать лишних ререндеров.

Итог: Выбор альтернативы Redux зависит от масштаба проекта. Для небольших приложений достаточно Context API или Zustand. Для сложных, требующих тонкой оптимизации, подойдут MobX или атомарные библиотеки (Recoil/Jotai). Redux остается хорошим выбором для крупных проектов с четкой дисциплиной и потребностью в мощных middleware (например, для логирования или асинхронных действий).

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • React

    React

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

#state management

#React

#Redux alternatives

#Context API

#MobX

#Zustand

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