Итоги курса
Курс о состоянии и контексте в React.
Что ты узнал
- Состояние — данные, меняющиеся во времени
- Подъём состояния — в ближайшего общего родителя
- Композиция — альтернатива подъёму через
children - Контекст — передача данных без prop drilling
- Провайдер и потребитель — паттерн контекста
- Мемоизация контекста — через
useMemo - useSyncExternalStore — подписка на внешние источники
- useReducer + контекст — минимальный стор
- Серверное состояние — TanStack Query
- Паттерны — один источник истины, статусы вместо флагов
- Отладка — DevTools, Profiler, логирование
Как выбрать подход
Локальный стейт — данные нужны одному компоненту.
Подъём — данные нужны соседям, есть общий родитель.
Композиция — родитель не должен знать о структуре данных.
Контекст — данные нужны глубоко в дереве, меняются редко.
useReducer + контекст — сложная логика обновления, без сторонних библиотек.
Zustand/Redux — глобальное состояние, селекторы, devtools.
TanStack Query/SWR — серверные данные.
Частые ошибки
- Хранить производное состояние
- Мутировать стейт
- Создавать объект в контексте без мемоизации
- Класть в контекст часто меняющиеся данные
- Использовать контекст вместо пропсов
- Держать серверные данные в своём сторе
Что дальше
- Изучи TanStack Query подробнее
- Попробуй Zustand в небольшом проекте
- Разберись с
useSyncExternalStore - Практикуй паттерны на реальных задачах
- Читай код библиотек: Zustand, Jotai
Полезные ссылки
- React docs: react.dev
- TanStack Query: tanstack.com/query
- Zustand: github.com/pmndrs/zustand
- Redux Toolkit: redux-toolkit.js.org
- SWR: swr.vercel.app
Заключение
Состояние — одна из сложнейших тем React. Здесь нет единственно правильного решения: каждое приложение требует своего баланса между локальным стейтом, контекстом и стором. Главное — начинать с простого и усложнять только при необходимости.