El localStorage
localStorage es una API en JavaScript que permite almacenar datos de manera persistente en el navegador del usuario. Los datos almacenados en localStorage permanecen incluso si el navegador se cierra y se vuelve a abrir. Es útil para guardar pequeñas cantidades de información que necesitas conservar entre sesiones del usuario, como preferencias de usuario, configuraciones, o estado de la aplicación.
1. Características de localStorage #
Laboratorio: persistencia y conversión de objetos #
Guarda tus propias preferencias, recarga la página y recupéralas con Leer.
Compara localStorage con sessionStorage, inspecciona el texto JSON y prueba
qué ocurre cuando no se puede convertir de vuelta a un objeto. El laboratorio
usa una clave propia y no modifica las preferencias de la plataforma.
Laboratorio interactivo
Web Storage: guardar, recuperar y reparar JSON
Guarda un objeto en localStorage o sessionStorage reales y observa el texto almacenado. Ambos experimentos usan exclusivamente una clave reservada para este laboratorio.
Pulsa Leer para inspeccionar la clave del laboratorio.
Tema actual del formulario: claro
Clave: aprendetu:simulators:storage-lab:v1 Texto observado: null (sin dato observado) localStorage.setItem(clave, JSON.stringify(objeto)); const texto = localStorage.getItem(clave); const objeto = texto === null ? null : JSON.parse(texto);
localStorage se comparte entre pestañas del mismo origen y persiste hasta que se elimina. sessionStorage se organiza por origen y pestaña, sobrevive a recargas y termina al cerrar su sesión. Una pestaña abierta desde otra puede recibir una copia inicial de su sessionStorage. Reiniciar afecta a los controles; Eliminar clave afecta solo al almacén seleccionado.
Experimenta: Guarda un nombre y tema, cambia los controles y pulsa Leer para recuperarlos. Recarga la página y vuelve a leer. Después guarda JSON roto y comprueba el error.
- Persistencia: Los datos guardados en
localStorageno se eliminan al cerrar el navegador. - Almacenamiento clave-valor:
localStoragealmacena datos en pares clave-valor, donde ambos son cadenas de texto. - Capacidad: Tiene una capacidad limitada (generalmente alrededor de 5MB por dominio).
¿Cómo se usa localStorage? #
Las operaciones básicas con localStorage son guardar datos, recuperar datos, y eliminar datos.
-
Guardar datos: Usando
localStorage.setItem(clave, valor).clave: El nombre bajo el cual se almacena el valor.valor: El valor que se almacena, que debe ser una cadena de texto.
Ejemplo:
1localStorage.setItem('nombre', 'Juan'); -
Recuperar datos: Usando
localStorage.getItem(clave).clave: El nombre de la clave cuyo valor deseas recuperar.
Ejemplo:
1let nombre = localStorage.getItem('nombre'); 2console.log(nombre); // Muestra "Juan"
-
Eliminar datos: Usando
localStorage.removeItem(clave).clave: El nombre de la clave que deseas eliminar.
Ejemplo:
1localStorage.removeItem('nombre'); -
Eliminar todos los datos: Usando
localStorage.clear().- Elimina todos los datos almacenados en
localStoragepara ese dominio.
Ejemplo:
1localStorage.clear(); - Elimina todos los datos almacenados en
Trabajar con objetos en localStorage #
Como localStorage solo almacena cadenas de texto, si deseas almacenar objetos, debes convertirlos en una cadena de texto usando JSON.stringify() y luego convertirlos de nuevo en un objeto usando JSON.parse() cuando los recuperes.
Ejemplo:
Resumen del tema
Conceptos clave #
- Almacenamiento Persistente en Cliente (
localStorage): mecanismo de almacenamiento síncrono del navegador que persiste indefinidamente (~5-10 MB por origen: protocolo + dominio + puerto) sin fecha de caducidad. - API de Manipulación Clave-Valor:
setItem(key, value): guarda o actualiza una entrada (convierte el valor a string).getItem(key): lee el valor (devuelvenullsi la clave no existe).removeItem(key): borra una entrada específica.clear(): vacía todo el almacenamiento del dominio.
- Almacenamiento de Objetos Complejos: serialización obligatoria con
JSON.stringify(obj)al guardar y deserialización conJSON.parse(str)al recuperar.
Qué debes recordar #
localStorage almacena pares clave-valor de texto de forma persistente; usa siempre JSON.stringify() y JSON.parse() para guardar y recuperar estructuras de datos complejas.