Sveltejs Academy · Lección

Deshacer y rehacer con el historial de un store

Cree una pila de historial alrededor de un store writable para admitir deshacer y rehacer.

Lección 4 de 413 pasos

Deshacer y rehacer con el historial de un store es una lección gratuita de Sveltejs Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Sveltejs Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Sveltejs Academy incluye 4 lecciones en total.

Pila del historial

Envuelva un store writable con arrays de estados anteriores, actual y futuros para admitir deshacer y rehacer.

Implementación básica

Mantenga una lista de los 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()); } }
  };
}

Limitar el tamaño de la pila

Limite la longitud del historial para acotar el uso de memoria.

Copias profundas

Guarde copias profundas de los objetos para evitar problemas de mutación.

Atajos de teclado

Asigne Ctrl+Z y Ctrl+Shift+Z a deshacer y rehacer para ofrecer una experiencia natural.

Persistencia del historial

Guarde el historial en localStorage para permitir deshacer entre sesiones, teniendo en cuenta el tamaño.

Rendimiento

Para estados grandes, guarde diferencias en lugar de instantáneas completas.

Ramificación

La mayoría de las aplicaciones borran el futuro al realizar una acción nueva; algunos editores conservan un historial ramificado.

Opciones de bibliotecas

Bibliotecas como svelte-undo proporcionan stores de historial listos para usar.

Indicadores de la interfaz

Desactive los botones de deshacer y rehacer cuando no haya nada que deshacer o rehacer.

Pruebas

Pruebe secuencias de acciones más deshacer y rehacer para asegurarse de que la reversión sea correcta.

Comprobación rápida

¿Qué función cumple la pila futura?

Resumen

Implemente deshacer y rehacer con pilas de estados anteriores, actual y futuros alrededor de un store writable. Limite su tamaño y asigne atajos de teclado.

Gratis para empezar

Aprende HTML con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
41
Lecciones
163

Preguntas frecuentes

¿La lección «Deshacer y rehacer con el historial de un store» es gratis?

Sí — el texto completo de «Deshacer y rehacer con el historial de un store» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Sveltejs Academy, actualiza a CoddyKit PRO. El curso de Sveltejs Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Deshacer y rehacer con el historial de un store»?

Cree una pila de historial alrededor de un store writable para admitir deshacer y rehacer. Practicas Sveltejs Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Sveltejs Academy?

No se requiere experiencia previa. Sveltejs Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Deshacer y rehacer con el historial de un store»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Sveltejs Academy?

Sí. Cada lección de Sveltejs Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Arquitectura de stores: módulos de funcionalidades
  2. Patrón de bus de eventos con stores
  3. Actualizaciones optimistas de la interfaz
  4. Deshacer y rehacer con el historial de un store
← Volver a Sveltejs Academy