Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Guardar Datos en el Almacenamiento Local en Angular | Servicios e Inyección de Dependencias en Angular
Introducción a Angular

bookGuardar Datos en el Almacenamiento Local en Angular

En esta etapa, nuestra aplicación gestiona las tareas solo en memoria. Esto significa que cada vez que se actualiza la página, se pierde toda la lista de tareas.

Para solucionar esto y asegurarnos de que las tareas se guarden entre sesiones de usuario, utilizaremos Local Storage — una función incorporada en el navegador que permite almacenar pares clave-valor directamente en el navegador del usuario.

¿Qué es Local Storage?

Note
Definición

Local Storage es un tipo de almacenamiento web proporcionado por los navegadores modernos que permite almacenar datos localmente en el dispositivo del usuario en forma de pares clave-valor.

Los datos almacenados en Local Storage no desaparecen cuando se cierra la página o el navegador; permanecen disponibles incluso después de reiniciar completamente el navegador.

LocalStorage solo almacena datos como cadenas de texto, por lo que al trabajar con objetos o arreglos, es necesario convertirlos utilizando JSON.stringify() antes de guardarlos y JSON.parse() al recuperarlos.

A continuación se presentan los métodos principales utilizados para interactuar con Local Storage:

Añadiendo almacenamiento local

Para garantizar que nuestras tareas se guarden incluso después de recargar la página, es necesario implementar persistencia utilizando el almacenamiento local del navegador. Esto significa que se debe enseñar a nuestro TaskService cómo guardar tareas en el almacenamiento local y cómo cargarlas nuevamente cuando la aplicación se inicia.

Guardar tareas en el almacenamiento local

Primero, se necesita un método que tome nuestro arreglo interno de tareas y lo almacene en el almacenamiento local del navegador.

Así es como se puede hacer:

private saveTasks(): void {
  localStorage.setItem('tasks', JSON.stringify(this.tasks));
}

Este método convierte el arreglo tasks en una cadena JSON utilizando JSON.stringify. Luego, almacena esa cadena en localStorage bajo la clave tasks.

Cada vez que se agrega, elimina o actualiza una tarea, se debe llamar a este método para asegurar que los datos se guarden.

Carga de tareas desde Local Storage

A continuación, se implementará un método que carga la lista de tareas desde Local Storage cuando se inicializa el servicio.

private loadTasks(): Task[] {
  const data = localStorage.getItem('tasks');
  return data ? JSON.parse(data) : [];
}

Este método intenta recuperar un valor de localStorage utilizando la misma clave tasks.

Si los datos existen, analiza la cadena JSON de nuevo en un arreglo de TypeScript. Si no hay nada en el almacenamiento, devuelve un arreglo vacío para comenzar desde cero.

Carga de tareas al inicializar el servicio

Se requiere cargar las tareas existentes tan pronto como se crea el servicio. Para ello, se utiliza el constructor del servicio:

constructor() {
  this.tasks = this.loadTasks();
}

Esto garantiza que el arreglo de tareas se complete inmediatamente con cualquier dato previamente guardado cuando la aplicación se inicia.

Versión final de TaskService

Solo queda asegurarse de que la lista de tareas se guarde en Local Storage cada vez que ocurra un cambio. Esto significa que es necesario llamar al método saveTasks al final de los métodos addTask, deleteTask y toggleTask para mantener Local Storage sincronizado con nuestra lista tasks.

A continuación se muestra cómo se ve el TaskService completo con la funcionalidad de almacenamiento local:

task-service.ts

task-service.ts

copy

Al implementar saveTasks() y loadTasks() en nuestro servicio, hemos permitido que nuestro gestor de tareas persista los datos entre sesiones. Ahora, cada vez que el usuario agrega, completa o elimina una tarea, esos cambios se almacenan en el navegador y se restauran automáticamente la próxima vez que abra la aplicación.

Esto proporciona a nuestra aplicación una experiencia de usuario mucho más profesional y confiable.

1. ¿Qué hace el método setItem()?

2. ¿Cuál es el mejor lugar para cargar tareas desde localStorage en un servicio de Angular?

question mark

¿Qué hace el método setItem()?

Select the correct answer

question mark

¿Cuál es el mejor lugar para cargar tareas desde localStorage en un servicio de Angular?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how to use JSON.stringify and JSON.parse with local storage?

What happens if local storage is cleared by the user?

Are there any limitations or security concerns with using local storage?

Awesome!

Completion rate improved to 3.13

bookGuardar Datos en el Almacenamiento Local en Angular

Desliza para mostrar el menú

En esta etapa, nuestra aplicación gestiona las tareas solo en memoria. Esto significa que cada vez que se actualiza la página, se pierde toda la lista de tareas.

Para solucionar esto y asegurarnos de que las tareas se guarden entre sesiones de usuario, utilizaremos Local Storage — una función incorporada en el navegador que permite almacenar pares clave-valor directamente en el navegador del usuario.

¿Qué es Local Storage?

Note
Definición

Local Storage es un tipo de almacenamiento web proporcionado por los navegadores modernos que permite almacenar datos localmente en el dispositivo del usuario en forma de pares clave-valor.

Los datos almacenados en Local Storage no desaparecen cuando se cierra la página o el navegador; permanecen disponibles incluso después de reiniciar completamente el navegador.

LocalStorage solo almacena datos como cadenas de texto, por lo que al trabajar con objetos o arreglos, es necesario convertirlos utilizando JSON.stringify() antes de guardarlos y JSON.parse() al recuperarlos.

A continuación se presentan los métodos principales utilizados para interactuar con Local Storage:

Añadiendo almacenamiento local

Para garantizar que nuestras tareas se guarden incluso después de recargar la página, es necesario implementar persistencia utilizando el almacenamiento local del navegador. Esto significa que se debe enseñar a nuestro TaskService cómo guardar tareas en el almacenamiento local y cómo cargarlas nuevamente cuando la aplicación se inicia.

Guardar tareas en el almacenamiento local

Primero, se necesita un método que tome nuestro arreglo interno de tareas y lo almacene en el almacenamiento local del navegador.

Así es como se puede hacer:

private saveTasks(): void {
  localStorage.setItem('tasks', JSON.stringify(this.tasks));
}

Este método convierte el arreglo tasks en una cadena JSON utilizando JSON.stringify. Luego, almacena esa cadena en localStorage bajo la clave tasks.

Cada vez que se agrega, elimina o actualiza una tarea, se debe llamar a este método para asegurar que los datos se guarden.

Carga de tareas desde Local Storage

A continuación, se implementará un método que carga la lista de tareas desde Local Storage cuando se inicializa el servicio.

private loadTasks(): Task[] {
  const data = localStorage.getItem('tasks');
  return data ? JSON.parse(data) : [];
}

Este método intenta recuperar un valor de localStorage utilizando la misma clave tasks.

Si los datos existen, analiza la cadena JSON de nuevo en un arreglo de TypeScript. Si no hay nada en el almacenamiento, devuelve un arreglo vacío para comenzar desde cero.

Carga de tareas al inicializar el servicio

Se requiere cargar las tareas existentes tan pronto como se crea el servicio. Para ello, se utiliza el constructor del servicio:

constructor() {
  this.tasks = this.loadTasks();
}

Esto garantiza que el arreglo de tareas se complete inmediatamente con cualquier dato previamente guardado cuando la aplicación se inicia.

Versión final de TaskService

Solo queda asegurarse de que la lista de tareas se guarde en Local Storage cada vez que ocurra un cambio. Esto significa que es necesario llamar al método saveTasks al final de los métodos addTask, deleteTask y toggleTask para mantener Local Storage sincronizado con nuestra lista tasks.

A continuación se muestra cómo se ve el TaskService completo con la funcionalidad de almacenamiento local:

task-service.ts

task-service.ts

copy

Al implementar saveTasks() y loadTasks() en nuestro servicio, hemos permitido que nuestro gestor de tareas persista los datos entre sesiones. Ahora, cada vez que el usuario agrega, completa o elimina una tarea, esos cambios se almacenan en el navegador y se restauran automáticamente la próxima vez que abra la aplicación.

Esto proporciona a nuestra aplicación una experiencia de usuario mucho más profesional y confiable.

1. ¿Qué hace el método setItem()?

2. ¿Cuál es el mejor lugar para cargar tareas desde localStorage en un servicio de Angular?

question mark

¿Qué hace el método setItem()?

Select the correct answer

question mark

¿Cuál es el mejor lugar para cargar tareas desde localStorage en un servicio de Angular?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 5
some-alt