Se muestran cuando ejecutas los tests. Hasta entonces aparecen como un requisito oculto.
Crea el hook useLocalStorage(key, initialValue): funciona como useState, pero el valor se guarda en localStorage bajo key, así que sobrevive a una recarga de la página, y sigue los cambios que guardan otras pestañas. Practicas los hooks propios, los efectos con limpieza y JSON.
useLocalStorage y la exportación: los tests usan el hook a través de un componente de test.localStorage vive en memoria y empieza vacío cada vez que el código se recarga. En una página real sobrevive a las recargas.key (como JSON) o, si no hay ninguno, initialValue.[value, setValue]; setValue acepta un valor nuevo o una función del anterior, como useState.key como JSON.storage de window), el valor se actualiza.key, el hook devuelve lo que hay guardado bajo la clave nueva (o initialValue), y lo guardado bajo cada clave se queda como estaba.useLocalStorage("color", "green") sin nada guardado → "green".setValue("blue") → devuelve "blue", y localStorage.getItem("color") es "\"blue\""."blue".useState acepta una función que calcula el valor inicial una sola vez: lee el almacenamiento ahí.
Guarda en un efecto que dependa de key y de value.
Escucha storage en un efecto, y quita el listener en su limpieza.
localStorage, JSON.stringify y JSON.parse.La consola está vacía
Ejecuta tu código con Ctrl+S
Esta consola empieza de cero cada vez que se carga la vista previa. La consola de DevTools del navegador conserva los mensajes con Preserve log.