Uma biblioteca leve de gerenciamento de estado para React, baseada em hooks e sem necessidade de providers.
- Estrelas
- 30,422
- Forks
- 1,413
- Issues abertas
- 123
- Último commit
- há 8 horas
O que é?
XState é uma biblioteca de gerenciamento de estado e orquestração para JavaScript e TypeScript, que pode ser usada tanto no frontend quanto no backend. Ela representa a lógica da aplicação como máquinas de estado, statecharts e actors, declarando explicitamente as transições, os efeitos colaterais e os eventos permitidos, em vez de espalhá-los por condicionais.
O pacote principal, xstate, oferece definições de máquinas, actors que executam a lógica das máquinas e disponibilizam snapshots para quem se inscreve, além de suporte a estados hierárquicos, paralelos e de histórico. O Stately Studio, um editor visual, pode ser usado para criar máquinas e exportá-las para o XState v5. Pacotes complementares adicionam integrações com React, Vue, Svelte e Solid.
Para casos mais simples, o pacote separado @xstate/store oferece uma store pequena baseada em eventos, com atoms reativos e inferência robusta de tipos do TypeScript, e funciona com ou sem a biblioteca principal.
Recursos principais
- 01Defina máquinas de estado e statecharts com estados hierárquicos, paralelos e de histórico.
- 02Execute lógica como actors que disponibilizam snapshots de estado para quem se inscreve.
- 03Sem dependências em tempo de execução.
- 04Crie visualmente e exporte usando o Stately Studio.
- 05Integrações com React, Vue, Svelte e Solid.
- 06Pacote separado e leve, @xstate/store, para gerenciamento de estado baseado em eventos.
Casos de uso
- Gerenciar fluxos de UI com várias etapas, como formulários, assistentes ou processos de checkout.
- Orquestrar workflows de backend de longa duração e tarefas em segundo plano.
- Deixar explícitas e testáveis as transições complexas de estado dos componentes.
- Usar uma store pequena e orientada a eventos como alternativa ao Redux ou ao Zustand.
Início rápido
- 1
Instale o pacote xstate com npm
npm install xstate
Em coleções
Tópicos
Perguntas frequentes
- O que é xstate?
- Biblioteca JavaScript/TypeScript sem dependências para máquinas de estado, statecharts e actors, que ajuda a gerenciar a lógica complexa de apps e workflows. XState é uma biblioteca de gerenciamento de estado e orquestração para JavaScript e TypeScript, que pode ser usada tanto no frontend quanto no backend. Ela representa a lógica da aplicação como máquinas de estado, statecharts e actors, declarando explicitamente as transições, os efeitos colaterais e os eventos permitidos, em vez de espalhá-los por condicionais.
- xstate é gratuito? Qual é a licença?
- xstate é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- xstate ainda é mantido?
- Manutenção ativa. O último commit de xstate foi em 7 de nov. de 2026.
- Para que posso usar xstate?
- Gerenciar fluxos de UI com várias etapas, como formulários, assistentes ou processos de checkout. Orquestrar workflows de backend de longa duração e tarefas em segundo plano. Deixar explícitas e testáveis as transições complexas de estado dos componentes. Usar uma store pequena e orientada a eventos como alternativa ao Redux ou ao Zustand.
- Como instalar xstate?
- Instale o pacote xstate com npm: npm install xstate
- Onde consigo xstate?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/statelyai/xstate
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca JavaScript para gerenciar o estado global de forma previsível e sustentável, com React ou qualquer outra biblioteca de interface.
Gerenciamento de estado simples e escalável para apps JavaScript e TypeScript, com rastreamento automático de dependências e renderização otimizada.
Bindings oficiais do React para Redux, conectando stores do Redux a componentes React por meio de hooks e de um Provider.
Um fluxo de engenharia condicionado a evidências que aplica as cinco fases do SPARC (Specification, Pseudocode, Architecture, Refinement, Completion) por meio de uma máquina de estados em TypeScript, CLI e servidor MCP.
Biblioteca Python para criar aplicações de tomada de decisão, como chatbots e agentes, em forma de máquinas de estados, com uma UI integrada para rastreamento e monitoramento.