Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Speichern von Daten im Local Storage in Angular | Services and Dependency Injection in Angular
Einführung in Angular

bookSpeichern von Daten im Local Storage in Angular

In diesem Stadium verwaltet unsere Anwendung Aufgaben nur im Arbeitsspeicher. Das bedeutet, dass bei jedem Aktualisieren der Seite die gesamte Aufgabenliste verloren geht.

Um dies zu beheben und sicherzustellen, dass Aufgaben zwischen den Benutzersitzungen gespeichert bleiben, verwenden wir Local Storage – eine integrierte Browserfunktion, mit der Sie Schlüssel-Wert-Paare direkt im Browser des Benutzers speichern können.

Was ist Local Storage?

Note
Definition

Local Storage ist eine Art von Webspeicher, die von modernen Browsern bereitgestellt wird und es ermöglicht, Daten lokal auf dem Gerät des Benutzers in Form von Schlüssel-Wert-Paaren zu speichern.

Die in Local Storage gespeicherten Daten bleiben erhalten, auch wenn die Seite oder der Browser geschlossen wird — sie sind selbst nach einem vollständigen Neustart des Browsers weiterhin verfügbar.

LocalStorage speichert Daten ausschließlich als Zeichenfolgen. Beim Arbeiten mit Objekten oder Arrays ist daher eine Umwandlung mit JSON.stringify() vor dem Speichern und mit JSON.parse() beim Auslesen erforderlich.

Hier sind die wichtigsten Methoden zur Interaktion mit Local Storage:

Hinzufügen von Local Storage

Um sicherzustellen, dass unsere Aufgaben auch nach einem Neuladen der Seite gespeichert bleiben, muss Persistenz mithilfe des Local Storage des Browsers implementiert werden. Das bedeutet, dass unser TaskService lernen muss, wie Aufgaben im Local Storage gespeichert und beim Start der App wieder geladen werden.

Aufgaben im Local Storage speichern

Zunächst wird eine Methode benötigt, die das interne Aufgaben-Array nimmt und im Local Storage des Browsers speichert.

So kann dies umgesetzt werden:

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

Diese Methode wandelt das Array tasks mit Hilfe von JSON.stringify in einen JSON-String um. Anschließend wird dieser String unter dem Schlüssel localStorage im tasks gespeichert.

Jedes Mal, wenn eine Aufgabe hinzugefügt, gelöscht oder aktualisiert wird, wird diese Methode aufgerufen, um sicherzustellen, dass unsere Daten gespeichert werden.

Laden von Aufgaben aus dem Local Storage

Als Nächstes implementieren wir eine Methode, die die Aufgabenliste beim Initialisieren des Services aus dem Local Storage lädt.

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

Diese Methode versucht, einen Wert aus dem localStorage mit dem gleichen Schlüssel tasks abzurufen.

Wenn die Daten vorhanden sind, wird der JSON-String zurück in ein TypeScript-Array umgewandelt. Falls sich nichts im Speicher befindet, wird ein leeres Array zurückgegeben, um neu zu beginnen.

Laden von Aufgaben bei der Initialisierung des Service

Vorhandene Aufgaben sollen geladen werden, sobald der Service erstellt wird. Dazu verwenden wir den Konstruktor des Service:

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

Dadurch wird sichergestellt, dass das Aufgabenarray beim Start der App sofort mit zuvor gespeicherten Daten gefüllt wird.

Endgültige Version des TaskService

Es bleibt nur noch sicherzustellen, dass unsere Aufgabenliste bei jeder Änderung in Local Storage gespeichert wird. Das bedeutet, dass wir die Methode saveTasks am Ende der Methoden addTask, deleteTask und toggleTask aufrufen müssen, um Local Storage mit unserer tasks-Liste abzugleichen.

So sieht der vollständige TaskService mit Local-Storage-Funktionalität aus:

task-service.ts

task-service.ts

copy

Durch die Implementierung von saveTasks() und loadTasks() in unserem Service kann unser Aufgabenmanager Daten über verschiedene Sitzungen hinweg speichern. Immer wenn der Benutzer eine Aufgabe hinzufügt, abschließt oder löscht, werden diese Änderungen im Browser gespeichert und beim nächsten Öffnen der App automatisch wiederhergestellt.

Dies verleiht unserer App ein deutlich professionelleres und zuverlässigeres Benutzererlebnis.

1. Was macht die Methode setItem()?

2. Wo ist der beste Ort, um Aufgaben aus dem localStorage in einem Angular-Service zu laden?

question mark

Was macht die Methode setItem()?

Select the correct answer

question mark

Wo ist der beste Ort, um Aufgaben aus dem localStorage in einem Angular-Service zu laden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 3.13

bookSpeichern von Daten im Local Storage in Angular

Swipe um das Menü anzuzeigen

In diesem Stadium verwaltet unsere Anwendung Aufgaben nur im Arbeitsspeicher. Das bedeutet, dass bei jedem Aktualisieren der Seite die gesamte Aufgabenliste verloren geht.

Um dies zu beheben und sicherzustellen, dass Aufgaben zwischen den Benutzersitzungen gespeichert bleiben, verwenden wir Local Storage – eine integrierte Browserfunktion, mit der Sie Schlüssel-Wert-Paare direkt im Browser des Benutzers speichern können.

Was ist Local Storage?

Note
Definition

Local Storage ist eine Art von Webspeicher, die von modernen Browsern bereitgestellt wird und es ermöglicht, Daten lokal auf dem Gerät des Benutzers in Form von Schlüssel-Wert-Paaren zu speichern.

Die in Local Storage gespeicherten Daten bleiben erhalten, auch wenn die Seite oder der Browser geschlossen wird — sie sind selbst nach einem vollständigen Neustart des Browsers weiterhin verfügbar.

LocalStorage speichert Daten ausschließlich als Zeichenfolgen. Beim Arbeiten mit Objekten oder Arrays ist daher eine Umwandlung mit JSON.stringify() vor dem Speichern und mit JSON.parse() beim Auslesen erforderlich.

Hier sind die wichtigsten Methoden zur Interaktion mit Local Storage:

Hinzufügen von Local Storage

Um sicherzustellen, dass unsere Aufgaben auch nach einem Neuladen der Seite gespeichert bleiben, muss Persistenz mithilfe des Local Storage des Browsers implementiert werden. Das bedeutet, dass unser TaskService lernen muss, wie Aufgaben im Local Storage gespeichert und beim Start der App wieder geladen werden.

Aufgaben im Local Storage speichern

Zunächst wird eine Methode benötigt, die das interne Aufgaben-Array nimmt und im Local Storage des Browsers speichert.

So kann dies umgesetzt werden:

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

Diese Methode wandelt das Array tasks mit Hilfe von JSON.stringify in einen JSON-String um. Anschließend wird dieser String unter dem Schlüssel localStorage im tasks gespeichert.

Jedes Mal, wenn eine Aufgabe hinzugefügt, gelöscht oder aktualisiert wird, wird diese Methode aufgerufen, um sicherzustellen, dass unsere Daten gespeichert werden.

Laden von Aufgaben aus dem Local Storage

Als Nächstes implementieren wir eine Methode, die die Aufgabenliste beim Initialisieren des Services aus dem Local Storage lädt.

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

Diese Methode versucht, einen Wert aus dem localStorage mit dem gleichen Schlüssel tasks abzurufen.

Wenn die Daten vorhanden sind, wird der JSON-String zurück in ein TypeScript-Array umgewandelt. Falls sich nichts im Speicher befindet, wird ein leeres Array zurückgegeben, um neu zu beginnen.

Laden von Aufgaben bei der Initialisierung des Service

Vorhandene Aufgaben sollen geladen werden, sobald der Service erstellt wird. Dazu verwenden wir den Konstruktor des Service:

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

Dadurch wird sichergestellt, dass das Aufgabenarray beim Start der App sofort mit zuvor gespeicherten Daten gefüllt wird.

Endgültige Version des TaskService

Es bleibt nur noch sicherzustellen, dass unsere Aufgabenliste bei jeder Änderung in Local Storage gespeichert wird. Das bedeutet, dass wir die Methode saveTasks am Ende der Methoden addTask, deleteTask und toggleTask aufrufen müssen, um Local Storage mit unserer tasks-Liste abzugleichen.

So sieht der vollständige TaskService mit Local-Storage-Funktionalität aus:

task-service.ts

task-service.ts

copy

Durch die Implementierung von saveTasks() und loadTasks() in unserem Service kann unser Aufgabenmanager Daten über verschiedene Sitzungen hinweg speichern. Immer wenn der Benutzer eine Aufgabe hinzufügt, abschließt oder löscht, werden diese Änderungen im Browser gespeichert und beim nächsten Öffnen der App automatisch wiederhergestellt.

Dies verleiht unserer App ein deutlich professionelleres und zuverlässigeres Benutzererlebnis.

1. Was macht die Methode setItem()?

2. Wo ist der beste Ort, um Aufgaben aus dem localStorage in einem Angular-Service zu laden?

question mark

Was macht die Methode setItem()?

Select the correct answer

question mark

Wo ist der beste Ort, um Aufgaben aus dem localStorage in einem Angular-Service zu laden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5
some-alt