react-state-management
Faz seu agente gerenciar o estado de aplicações React de forma eficiente. Ele ajuda a escolher e implementar as melhores ferramentas para isso.
O que ela faz
Este guia ensina como organizar e gerenciar dados em aplicativos feitos com React. Ele cobre desde dados que pertencem a um único componente até dados compartilhados por todo o aplicativo ou dados vindos de um servidor.
Quando usar
- ✓Quando você precisa compartilhar informações entre várias partes do seu aplicativo React.
- ✓Ao decidir qual ferramenta usar para gerenciar dados que vêm de um servidor.
- ✓Para organizar dados que são usados em todo o aplicativo.
Exemplo do que pedir para a IA
“Como posso organizar os dados que meu aplicativo React precisa buscar de um servidor?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O guia explica diferentes tipos de dados (locais, globais, de servidor) e sugere ferramentas como Redux Toolkit, Zustand, Jotai e React Query para cada caso. Ele também mostra exemplos de como usar essas ferramentas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill react-state-managementOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/frontend-mobile-development/skills/react-state-management/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerenciamento de Estado no React
Guia completo de padrões modernos de gerenciamento de estado no React, desde o estado local de componentes até stores globais e sincronização de estado do servidor.
Quando Usar Esta Habilidade
- Configurar o gerenciamento de estado global em um aplicativo React
- Escolher entre Redux Toolkit, Zustand ou Jotai
- Gerenciar estado do servidor com React Query ou SWR
- Implementar atualizações otimistas
- Depurar problemas relacionados ao estado
- Migrar do Redux legado para padrões modernos
Conceitos Principais
1. Categorias de Estado
| Tipo | Descrição | Soluções |
|---|---|---|
| Estado Local | Específico do componente, estado da UI | useState, useReducer |
| Estado Global | Compartilhado entre componentes | Redux Toolkit, Zustand, Jotai |
| Estado do Servidor | Dados remotos, cache | React Query, SWR, RTK Query |
| Estado da URL | Parâmetros de rota, busca | React Router, nuqs |
| Estado de Formulário | Valores de entrada, validação | React Hook Form, Formik |
2. Critérios de Seleção
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
Início Rápido
Zustand (Mais Simples)
// 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>
)
}
Padrões detalhados e exemplos práticos
A documentação detalhada dos padrões está em references/details.md. Leia este arquivo quando a navegação de nível superior for insuficiente.
Melhores Práticas
O Que Fazer
- Coloque o estado perto de onde é usado - Mantenha o estado o mais próximo possível de onde ele é utilizado
- Use seletores - Evite re-renderizações desnecessárias com assinaturas seletivas
- Normalize dados - Achate estruturas aninhadas para facilitar atualizações
- Tipifique tudo - Cobertura completa com TypeScript evita erros em tempo de execução
- Separe as responsabilidades - Estado do servidor (React Query) vs. estado do cliente (Zustand)
O Que Não Fazer
- Não globalize em excesso - Nem tudo precisa estar no estado global
- Não duplique o estado do servidor - Deixe o React Query gerenciar
- Não modifique diretamente - Sempre use atualizações imutáveis
- Não armazene dados derivados - Calcule-os em vez disso
- Não misture paradigmas - Escolha uma solução principal por categoria
Guias de Migração
Do Redux Legado para RTK
// 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 });
},
},
});
Perguntas frequentes
Qual a diferença entre estado local e global?
Estado local é a informação de um único componente. Estado global é a informação que precisa ser acessada por vários componentes em diferentes partes do aplicativo.
Quando devo usar React Query?
React Query é ideal quando você precisa buscar, armazenar em cache e sincronizar dados que vêm de um servidor.
Qual ferramenta é mais simples para começar?
Zustand é frequentemente recomendado como uma opção mais simples para gerenciar estado global em aplicativos React.
Detalhes
Descrição original do autor
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.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4868
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC