Навыки react-state-management
📦

react-state-management

Безопасно

Реализация управления состоянием в React

Управление состоянием между компонентами React может приводить к сложному коду и непоследовательным данным. Этот навык предоставляет комплексные паттерны для Redux Toolkit, Zustand, Jotai и React Query для эффективного управления локальным, глобальным и серверным состоянием.

Поддерживает: Claude Codex Code(CC)
📊 71 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «react-state-management». What state management library should I use for a small app with simple global state needs?

Ожидаемый результат:

Для небольших приложений с простыми потребностями в глобальном состоянии, Zustand или Jotai являются отличным выбором:

**Zustand** предлагает простейший API с минимальным boilerplate:
- Создание хранилища с помощью одной hook-подобной функции
- Встроенные devtools и middleware для сохранения
- Провайдеры не требуются
- Выборочные подписки предотвращают ненужные повторные рендеры

**Jotai** превосходит, когда нужны атомарные, детальные обновления:
- Каждый кусок состояния - независимый атом
- Производные атомы автоматически вычисляются из других атомов
- Идеально для тонкой реактивности

Выберите Zustand, если предпочитаете единую модель хранилища. Выберите Jotai, если хотите атомарные обновления без обертки глобального хранилища.

Использование «react-state-management». How do I handle server state with React Query vs client state with Redux Toolkit?

Ожидаемый результат:

Держите серверное состояние и клиентское состояние отдельно для ясности и удобства поддержки:

**React Query управляет серверным состоянием:**
- Серверные данные, кэширование и синхронизация
- Автоматический повторный запрос и фоновые обновления
- Стратегия кэширования stale-while-revalidate
- Оптимистичные мутации с откатом

**Redux Toolkit управляет клиентским состоянием:**
- Состояние пользовательского интерфейса (модальные окна, открытие/закрытие боковой панели)
- Состояние аутентификации (когда не в cookies)
- Настройки и предпочтения приложения
- Сложное производное клиентское состояние

Это разделение предотвращает смешивание ответственности и упрощает отладку, так как каждый инструмент имеет четкое назначение.

Аудит безопасности

Безопасно
v5 • 1/21/2026

All 44 static findings are false positives. The scanner incorrectly flagged markdown code blocks as shell commands, standard documentation URLs as hardcoded secrets, and React/Redux patterns (state, slices, selectors) as cryptographic or reconnaissance patterns. This is legitimate documentation for React state management libraries.

2
Просканировано файлов
915
Проанализировано строк
0
находки
5
Всего аудитов
Проблем безопасности не найдено

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
29
Сообщество
100
Безопасность
91
Соответствие спецификации

Что вы можете построить

Выбор решения для состояния в новом проекте

Команда разработчиков, начинающая новое React-приложение, needs to select the right state management approach based on app size and requirements.

Реализация кэширования серверных данных

Фронтенд-разработчик wants to add caching, background refetching, and optimistic updates for API data in a React application.

Миграция устаревшего Redux на современные паттерны

Разработчику нужно обновить многословный boilerplate-код Redux до Redux Toolkit с Immer для неизменяемых обновлений.

Попробуйте эти промпты

Базовый: Настройка Redux Toolkit
How do I set up Redux Toolkit with TypeScript in a React app? Show how to create a store with slices and typed useDispatch and useSelector hooks.
Средний: Zustand с сохранением
Show me how to create a Zustand store that persists to localStorage with devtools support. Include how to access the store in components and handle typed state updates.
Продвинутый: React Query с оптимистичными обновлениями
Write a React Query mutation that performs optimistic updates. Include onMutate for snapshotting previous state, onError for rollback, and onSettled for refetching.
Экспертный: Комбинирование нескольких подходов к состоянию
How do I combine React Query for server state with Zustand for client-only state in the same application? Show the separation of concerns and how components consume both.

Лучшие практики

  • Располагайте состояние как можно ближе к месту его использования - избегайте помещения всего в глобальное состояние
  • Используйте селекторы для выбора только необходимых данных из хранилищ, чтобы предотвратить ненужные повторные рендеры компонентов
  • Разделяйте серверное состояние (React Query) от клиентского состояния (Zustand/Redux) - у каждого разные паттерны обновления и время жизни

Избегать

  • Помещение каждого кусочка состояния в глобальное состояние только потому, что он используется несколькими компонентами - локальное состояние часто достаточно
  • Прямое изменение состояния вместо использования паттернов неизменяемых обновлений или библиотек типа Immer
  • Дублирование серверного состояния и в React Query, и в клиентских хранилищах - пусть React Query будет единственным источником правды для серверных данных

Часто задаваемые вопросы

В чем разница между Redux Toolkit, Zustand и Jotai?
Redux Toolkit - это современный Redux с Immer для неизменяемых обновлений, лучше всего подходит для больших приложений, требующих Redux DevTools и поддержки TypeScript. Zustand минимален и не навязывает мнений, отлично подходит для простых и средних приложений. Jotai использует атомарное состояние, где каждый кусок независим, идеально для тонкой реактивности и небольших бандлов.
Когда использовать React Query вместо Redux для данных?
Используйте React Query для серверных данных, которые приходят от API. Он автоматически обрабатывает кэширование, фоновый повторный запрос, дедупликацию запросов и оптимистичные обновления. Используйте Redux только для клиентского состояния, которое React Query не может управлять, например, состояние UI или токены аутентификации.
Как сохранять состояние в Zustand?
Импортируйте middleware persist из zustand/middleware и добавьте его в конфигурацию хранилища. Middleware принимает имя для localStorage и опциональные фильтры для исключения определенного состояния из сохранения. Zustand автоматически обрабатывает чтение и запись в localStorage.
Можно ли использовать несколько библиотек управления состоянием вместе?
Да, комбинирование библиотек распространено и рекомендуется. Используйте React Query для серверного состояния, Zustand или Redux для клиентского состояния, и Jotai для атомарного состояния. Каждый служит разной цели, и они хорошо работают вместе без конфликтов.
Как отлаживать состояние с помощью Redux DevTools?
Redux Toolkit включает devtools по умолчанию при использовании функции configureStore. Расширение браузера devtools показывает историю действий, изменения состояния и отладку путешествия во времени. Zustand также поддерживает devtools через middleware devtools.
Какова рекомендуемая структура состояния для больших приложений?
Нормализуйте состояние аналогично базе данных с сущностями, ключами по ID. Используйте отдельные slices или хранилища для разных доменов (пользователи, продукты, корзина). Держите состояние плоским и избегайте вложенности, чтобы упростить обновления и предотвратить глубокие сравнения.

Сведения для разработчиков

Структура файлов

📄 SKILL.md