Biblioteca JavaScript para gerenciar o estado global de forma previsível e sustentável, com React ou qualquer outra biblioteca de interface.
immerjs/immer
Uma biblioteca JavaScript que permite atualizar estados imutáveis alterando uma cópia provisória do estado atual.
- Estrelas
- 28,988
- Forks
- 901
- Issues abertas
- 46
- Último commit
- há 13 horas
O que é?
Immer permite atualizar estados imutáveis escrevendo código comum que altera os dados. As mudanças são feitas em um proxy provisório do estado atual, e Immer gera uma nova árvore de estados imutável sem modificar o original. Assim, não é preciso copiar manualmente objetos e arrays aninhados ao atualizar o estado.
A biblioteca é bastante usada com reducers do Redux e outros códigos de gerenciamento de estado que exigem atualizações imutáveis. Sua API gira em torno da função produce, que recebe um estado base e uma função recipe, e ela é distribuída como o pacote npm immer. A documentação está no site do projeto.
Recursos principais
- 01Escreva atualizações de estado alterando uma cópia provisória, em vez de copiar objetos manualmente.
- 02Gera um novo estado imutável sem modificar o estado original.
- 03A API principal é a função produce, que recebe um estado base e uma recipe.
- 04Distribuída como o pacote npm immer.
Casos de uso
- Simplificar atualizações imutáveis em reducers do Redux.
- Atualizar estados profundamente aninhados no React ou em outros aplicativos de interface.
- Escrever lógica de estado que precise de histórico de desfazer ou rastreamento de alterações por meio de snapshots imutáveis.
Início rápido
- 1
Consulte a documentação em immerjs.github.io/immer para encontrar as instruções de instalação
- 2
Para contribuir, abra o projeto no Gitpod, que instala as dependências e executa yarn run start automaticamente
Tópicos
Perguntas frequentes
- O que é immer?
- Uma biblioteca JavaScript que permite atualizar estados imutáveis alterando uma cópia provisória do estado atual. Immer permite atualizar estados imutáveis escrevendo código comum que altera os dados. As mudanças são feitas em um proxy provisório do estado atual, e Immer gera uma nova árvore de estados imutável sem modificar o original. Assim, não é preciso copiar manualmente objetos e arrays aninhados ao atualizar o estado.
- immer é gratuito? Qual é a licença?
- immer é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- immer ainda é mantido?
- Manutenção ativa. O último commit de immer foi em 21 de out. de 2026.
- Para que posso usar immer?
- Simplificar atualizações imutáveis em reducers do Redux. Atualizar estados profundamente aninhados no React ou em outros aplicativos de interface. Escrever lógica de estado que precise de histórico de desfazer ou rastreamento de alterações por meio de snapshots imutáveis.
- Como instalar immer?
- Consulte a documentação em immerjs.github.io/immer para encontrar as instruções de instalação Para contribuir, abra o projeto no Gitpod, que instala as dependências e executa yarn run start automaticamente
- Onde consigo immer?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/immerjs/immer
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca leve de gerenciamento de estado para React, baseada em hooks e sem necessidade de providers.
Bindings oficiais do React para Redux, conectando stores do Redux a componentes React por meio de hooks e de um Provider.
Um middleware do Redux que gerencia efeitos colaterais, como a busca de dados, com sagas baseadas em generators fáceis de ler, testar e cancelar.
Biblioteca TypeScript para criar funções selector com memoização que derivam dados do Redux ou de outros estados JavaScript simples.
Uma biblioteca no estilo middleware do Redux que salva o estado da store em um armazenamento e o restaura quando o app é iniciado.