К основному содержанию
скилл Claude Code CX Codex Cursor

react-state-management — скилл для Claude Code

Помогает выбрать и настроить управление состоянием в React: локальное, глобальное, серверное, URL и состояние форм.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add wshobson/agents
/plugin install frontend-mobile-development@claude-code-workflows
Открыть на GitHub

Что делает react-state-management

Скилл разбирает управление состоянием в React по категориям. Он сопоставляет локальное состояние с useState и useReducer, глобальное с Redux Toolkit, Zustand и Jotai, а серверные данные с React Query, SWR и RTK Query. Также затрагивает URL-состояние и состояние форм.

Внутри есть критерии выбора для небольших и крупных приложений, примеры Zustand с devtools и persist, рекомендации по селекторам, нормализации данных и разделению клиентского и серверного состояния. Отдельно разобраны оптимистичные обновления, отладка и переход с legacy Redux на Redux Toolkit.

Ставьте его, когда нужно принять решение по архитектуре состояния или провести миграцию. Для задачи вне React он не нужен.

Какие задачи решает

  • выбрать библиотеку для глобального состояния React
  • разделить серверное и клиентское состояние
  • настроить Zustand с сохранением данных
  • найти причину лишних перерисовок
  • перенести legacy Redux на Redux Toolkit

Примеры запросов агенту

  • Выбери между Redux Toolkit, Zustand и Jotai для этого React-приложения и объясни решение.
  • Раздели состояние в проекте на локальное, глобальное и серверное, предложи схему с React Query.
  • Покажи, как перенести этот legacy Redux reducer на Redux Toolkit.

Как установить react-state-management

1Через маркетплейс плагинов

/plugin marketplace add wshobson/agents
/plugin install frontend-mobile-development@claude-code-workflows

2Через Skills CLI (Vercel)

npx skills add wshobson/agents --skill react-state-management -a claude-code

3Вручную: положить файлы

~/.claude/skills/react-state-management/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/react-state-management/

Похожие

prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. Claude Code 986 201установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. Claude Code Claude.ai 186 758установок web-artifacts-builder официальный anthropics Скилл собирает сложные HTML-артефакты для claude.ai на React, Tailwind CSS и shadcn/ui. Подходит для интерфейсов с состоянием и маршрутизацией. Claude Code Claude.ai 112 122установок theme-factory официальный anthropics Применяет готовые цветовые палитры и пары шрифтов к слайдам, документам и HTML-страницам. Подходит, когда материалу нужен единый стиль. Claude Code Claude.ai 94 921установок algorithmic-art официальный anthropics Создаёт генеративное искусство на p5.js с seed-случайностью и настройкой параметров. Подходит для flow fields, частиц и кодовых арт-экспериментов. Claude Code Claude.ai 89 081установок chrome-devtools официальный github Управляет живым Chrome через Chrome DevTools MCP: открывает страницы, проверяет ошибки и пишет трассы производительности. Нужен для отладки интерфейса прямо из агента. GitHub Copilot 15 258установок

Вопросы о react-state-management

Как установить react-state-management в Claude Code?

Выполните npx skills add wshobson/agents --skill react-state-management -a claude-code. Файл скилла появится в ~/.claude/skills/react-state-management/SKILL.md.

Что делает react-state-management?

Скилл помогает проектировать состояние React-приложения и выбирать между Redux Toolkit, Zustand, Jotai, React Query и связанными решениями.

Какие платформы поддерживает react-state-management?

Скилл рассчитан на Claude Code, Codex и Cursor. В инструкциях также есть команды для GitHub Copilot и Gemini CLI.

Исходный текст

SKILL.md · MIT
---
name: react-state-management
description: Master modern React state management with Redux Toolkit, Zustand, Jotai, and React Query. Use when setting up global state, managing server state, or choosing between state management solutions.
---

# React State Management

Comprehensive guide to modern React state management patterns, from local component state to global stores and server state synchronization.

## When to Use This Skill

- Setting up global state management in a React app
- Choosing between Redux Toolkit, Zustand, or Jotai
- Managing server state with React Query or SWR
- Implementing optimistic updates
- Debugging state-related issues
- Migrating from legacy Redux to modern patterns

## Core Concepts

### 1. State Categories

| Type             | Description                  | Solutions                     |
| ---------------- | ---------------------------- | ----------------------------- |
| **Local State**  | Component-specific, UI state | useState, useReducer          |
| **Global State** | Shared across components     | Redux Toolkit, Zustand, Jotai |
| **Server State** | Remote data, caching         | React Query, SWR, RTK Query   |
| **URL State**    | Route parameters, search     | React Router, nuqs            |
| **Form State**   | Input values, validation     | React Hook Form, Formik       |

### 2. Selection Criteria

```
Small app, simple state → Zustand or Jotai
Large app, complex state → Redux Toolkit
Heavy server interaction → React Query + light client state
Atomic/granular updates → Jotai
```

## Quick Start

### Zustand (Simplest)

```typescript
// store/useStore.ts
import { create } from 'zustand'
import { devtools, persist } from 'zustand/middleware'

interface AppState {
  user: User | null
  theme: 'light' | 'dark'
  setUser: (user: User | null) => void
  toggleTheme: () => void
}

export const useStore = create<AppState>()(
  devtools(
    persist(
      (set) => ({
        user: null,
        theme: 'light',
        setUser: (user) => set({ user }),
        toggleTheme: () => set((state) => ({
          theme: state.theme === 'light' ? 'dark' : 'light'
        })),
      }),
      { name: 'app-storage' }
    )
  )
)

// Usage in component
function Header() {
  const { user, theme, toggleTheme } = useStore()
  return (
    <header className={theme}>
      {user?.name}
      <button onClick={toggleTheme}>Toggle Theme</button>
    </header>
  )
}
```

## Detailed patterns and worked examples

Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.

## Best Practices

### Do's

- **Colocate state** - Keep state as close to where it's used as possible
- **Use selectors** - Prevent unnecessary re-renders with selective subscriptions
- **Normalize data** - Flatten nested structures for easier updates
- **Type everything** - Full TypeScript coverage prevents runtime errors
- **Separate concerns** - Server state (React Query) vs client state (Zustand)

### Don'ts

- **Don't over-globalize** - Not everything needs to be in global state
- **Don't duplicate server state** - Let React Query manage it
- **Don't mutate directly** - Always use immutable updates
- **Don't store derived data** - Compute it instead
- **Don't mix paradigms** - Pick one primary solution per category

## Migration Guides

### From Legacy Redux to RTK

```typescript
// Before (legacy Redux)
const ADD_TODO = "ADD_TODO";
const addTodo = (text) => ({ type: ADD_TODO, payload: text });
function todosReducer(state = [], action) {
  switch (action.type) {
    case ADD_TODO:
      return [...state, { text: action.payload, completed: false }];
    default:
      return state;
  }
}

// After (Redux Toolkit)
const todosSlice = createSlice({
  name: "todos",
  initialState: [],
  reducers: {
    addTodo: (state, action: PayloadAction<string>) => {
      // Immer allows "mutations"
      state.push({ text: action.payload, completed: false });
    },
  },
});
```

© Seth Hobson · MIT · wshobson/agents

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой