Pular para o conteúdo
Skillpedia
Sites e telas (frontend)41 mil · #4868

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

https://github.com/wshobson/agents/blob/main/plugins/frontend-mobile-development/skills/react-state-management/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/frontend-mobile-development/skills/react-state-management/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-management

Ou 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.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas