Playground

Mude as entradas. Veja o restate responder.

Sete experimentos rodam o pacote de verdade. O controlador à esquerda pertence a este site; o exemplo à direita só recebe props, então o código dele é exatamente o que você escreveria.

Controlador — só do siteprops — a ponteExemplo — o código que você copia
01

Duas telas, um store

Vários componentes precisam do mesmo valor. Declare uma vez e leia em qualquer lugar.

O que observar
  • Aperte o botão de passo: todos os leitores mostram o novo número ao mesmo tempo.
  • Mude o número de leitores: um leitor novo começa do valor atual.

Preparando o exemplo…

Começar
02

Renderize só o que mudou

Um store grande não deveria renderizar de novo todos os componentes a cada mudança.

O que observar
  • Editar mensagem: só o card do store inteiro renderiza.
  • Adicionar item: itens e resumo renderizam; o card do cupom fica parado.
  • Desligue shallow: o resumo renderiza a cada mudança, porque o selector dele retorna um objeto novo toda vez.

Preparando o exemplo…

Assine só o que você precisa
03

Muitas mudanças, uma notificação

Atualizar dois stores um de cada vez deixa um assinante ver um estado pela metade.

O que observar
  • Limpar separadamente: o assinante vê 0 itens junto com o cupom antigo.
  • Limpar com batch: o assinante roda uma vez, depois que os dois stores mudaram.

Preparando o exemplo…

Assine só o que você precisa
04

Salve quando você decidir

Editar muda a memória. Salvar é uma ação explícita, e o status mostra o que está acontecendo.

O que observar
  • Digite: dirty liga e nada é gravado ainda.
  • Aumente a latência e salve: operation mostra save enquanto a gravação acontece.
  • Reproduza de novo: o rascunho salvo é restaurado do IndexedDB.

Preparando o exemplo…

Salve quando você decidir
05

Digite rápido, grave uma vez

Salvar a cada tecla sobrecarrega o armazenamento. O autoSave espera uma pausa.

O que observar
  • Digite uma frase: as edições sobem rápido enquanto as gravações aumentam uma a cada pausa.
  • Escolha “A cada mudança”: cada edição grava, mas voltar ao valor salvo não grava nada.

Preparando o exemplo…

Salve quando você decidir
06

Laboratório de falhas

Deixe o armazenamento lento, com falhas ou indisponível e veja o restate manter seus dados e informar o problema.

O que observar
  • Aumente a latência e salve três vezes: os pedidos compartilham uma gravação, então pending fica em 1 e os três resultados chegam juntos.
  • Ligue as falhas de gravação e salve: dirty continua true e error mostra a causa.
  • Deixe o armazenamento indisponível: salvar é rejeitado com STORAGE_UNAVAILABLE enquanto a edição continua funcionando.

Preparando o exemplo…

Confiabilidade desde o design
07

Estado por documento

Cada documento aberto precisa do próprio estado, liberado quando o documento é fechado.

O que observar
  • Digite no documento A e depois no B: cada um mantém o próprio texto.
  • Feche o documento A e abra de novo: ele começa vazio, porque o scope dele foi destruído.

Preparando o exemplo…

Estado que pertence a um componente

Pesquisar na documentação

Pesquisa em títulos, descrições e texto de todos os guias.