Sveltejs Academy · Aula

Desfazer/refazer com histórico da store

Crie uma pilha de histórico em torno de uma store gravável para oferecer desfazer e refazer.

Aula 4 de 413 etapas

Desfazer/refazer com histórico da store é uma aula grátis de Sveltejs Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Sveltejs Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Sveltejs Academy inclui 4 aulas no total.

Pilha de histórico

Envolva um armazenamento gravável com listas past/present/future para oferecer desfazer/refazer.

Implementação básica

Mantenha uma lista dos estados anteriores.

function createHistory(initial) {
  let past = [], future = [];
  const state = writable(initial);
  return {
    subscribe: state.subscribe,
    set(v) { past.push(get(state)); future = []; state.set(v); },
    undo() { if (past.length) { future.push(get(state)); state.set(past.pop()); } },
    redo() { if (future.length) { past.push(get(state)); state.set(future.pop()); } }
  };
}

Limite o tamanho da pilha

Limite o tamanho do histórico para controlar o uso de memória.

Cópias profundas

Armazene cópias profundas dos objetos para evitar problemas de mutação.

Atalhos de teclado

Associe Ctrl+Z e Ctrl+Shift+Z a desfazer/refazer para obter uma experiência nativa.

Persistência do histórico

Salve em localStorage para permitir desfazer entre sessões, tendo cuidado com o tamanho.

Desempenho

Para estados grandes, armazene diferenças em vez de capturas completas.

Ramificação

A maioria dos aplicativos limpa future após uma nova ação; alguns editores mantêm um histórico ramificado.

Opções de bibliotecas

Bibliotecas como svelte-undo fornecem armazenamentos de histórico prontos para uso.

Indicadores da interface

Desative os botões de desfazer/refazer quando não houver nada a desfazer ou refazer.

Testes

Teste sequências de ações + desfazer/refazer para garantir a reversão correta.

Verificação rápida

O que a pilha future faz?

Recapitulação

Implemente desfazer/refazer com pilhas past/present/future ao redor de um armazenamento gravável. Limite o tamanho e associe atalhos.

Grátis para começar

Aprenda HTML com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
41
Aulas
163

Perguntas Frequentes

A aula “Desfazer/refazer com histórico da store” é grátis?

Sim — o texto completo de “Desfazer/refazer com histórico da store” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Sveltejs Academy, atualize para CoddyKit PRO. O curso de Sveltejs Academy inclui 4 aulas no total.

O que vou aprender em “Desfazer/refazer com histórico da store”?

Crie uma pilha de histórico em torno de uma store gravável para oferecer desfazer e refazer. Você pratica Sveltejs Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Sveltejs Academy?

Nenhuma experiência prévia é necessária. Sveltejs Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Desfazer/refazer com histórico da store”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Sveltejs Academy?

Sim. Cada aula de Sveltejs Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Arquitetura de stores: módulos de funcionalidades
  2. Padrão de barramento de eventos com stores
  3. Atualizações otimistas da interface
  4. Desfazer/refazer com histórico da store
← Voltar para Sveltejs Academy