Aprende a implementar un sistema de persistencia para tus notas usando local storage en JavaScript. Verás cómo guardar y cargar datos con JSON.stringify y JSON.parse, aplicar validaciones para evitar errores y documentar funciones con formato yesdoc. Además, integra Prettier para mantener un código limpio, consistente y fácil de leer.
¿Cómo implementar la persistencia con local storage?
Construir la persistencia implica definir una clave de almacenamiento global, crear funciones para guardar y leer desde local storage y asegurar datos válidos. El flujo se apoya en JSON para serializar y parsear la información.
¿Qué clave de almacenamiento usar en local storage?
Define una variable global para reutilizarla en todo el proyecto.
Usa un nombre claro y estable para identificar las notas.
// Clave global para el almacenamiento en localStorageconst storageKey ='markdown-notes';
¿Cómo guardar notas con JSON.stringify y setItem?
Valida que el parámetro no sea undefined o null.
Serializa con JSON.stringify antes de guardar.
Usa localStorage.setItem con la clave global.
/**
* Guarda las notas en local storage.
* @param{Array}notes - array de notas a guardar.
*/functionsaveToStorage(notes){if(notes ===undefined|| notes ===null){console.error('No se pueden guardar notas, datos inválidos');return;// Evita continuar con el guardado.}const notesJSON =JSON.stringify(notes);localStorage.setItem(storageKey, notesJSON);}
Conceptos aplicados: validación de datos, serialización JSON, uso de console.error, control de flujo con return y setItem en localStorage.
¿Cómo cargar notas con getItem y JSON.parse?
Lee el valor con localStorage.getItem.
Si no hay datos, retorna un array vacío.
Parse a objeto iterable con JSON.parse.
Verifica el tipo con Array.isArray antes de asignar.
/**
* Carga las notas desde el local storage.
* @returns{Array} array de notas o array vacío si no hay datos.
*/functionloadFromStorage(){const notesJSON =localStorage.getItem(storageKey);if(notesJSON ===null|| notesJSON ===undefined){return[];}let notes =[];const parsedNotes =JSON.parse(notesJSON);if(Array.isArray(parsedNotes)){ notes = parsedNotes;}return notes;}
Conceptos aplicados: lectura desde almacenamiento, parseo JSON, verificación de tipo con Array.isArray, retorno seguro con array vacío.
¿Por qué documentar funciones con yesdoc?
La documentación breve y clara facilita el mantenimiento y el uso de las funciones. Con formato yesdoc, se deja explícito qué hace cada función, qué parámetros recibe y qué devuelve.
Descripción directa: qué hace la función en una línea.
@param: tipo y significado del argumento, por ejemplo, array de notas a guardar.
@returns: forma del retorno, por ejemplo, array de notas o array vacío.
Beneficio clave: legibilidad y estandarización en todo el código.
¿Cómo mejora Prettier el flujo de trabajo?
Integrar Prettier al editor permite formatear el código al guardar. Así se aseguran puntos y comas, indentación correcta y una estructura consistente. Como “la cereza del pastel”, automatiza el estilo para que el foco sea la lógica.
Formatea al guardar cambios.
Organiza el código y agrega puntos y comas.
Corrige indentación y espaciados.
Produce una sintaxis amigable y lista para leer.
¿Te gustaría compartir cómo estructuraste tus funciones o qué validaciones agregaste? Deja tus dudas o comentarios para seguir mejorando juntos.