State Management

Aus Zweites Gehirn, dem persönlichen Wiki
State Management
TypKonzept
QuellenQuelle - Angular Mastery Workshop
Quelle - Recherche - Angular heute 2026
Erstellt2026-09-26
Aktualisiert2026-09-26
Tagsangular, softwarearchitektur, zustand, heuristik

Die Verwaltung des Zustands (der Daten) einer Anwendung: wo er liegt, wer ihn ändern darf und wie er über mehrere Orte synchron bleibt. Der Angular-Kurs unterscheidet sechs Arten von Zustand und wählt anhand von fünf Heuristiken zwischen Komponente, Service und Bibliothek.

Warum es schwierig ist

Zustand ist schlicht Daten (Quelle - Angular Mastery Workshop, Folie 360). Das Problem ist die Synchronisation: Die Daten liegen an vielen Orten (Backend, URL, Services, Komponenten). Je mehr Orte, desto mehr Abgleich ist nötig. Fehlender oder unvollständiger Abgleich ist eine Hauptquelle von Fehlern. Wird er in jedem Feature neu von Hand gelöst, entstehen Widersprüche. Genau dafür gibt es State-Management-Bibliotheken (Folie 361).

Sechs Arten von Zustand

Art Wo Merkmale Beispiele
Server-Zustand Server langlebig, über API erreichbar, letzte Wahrheit, kann nicht erreichbar sein Benutzer, Verträge, Produkte
Persistenter Zustand Browser (Speicher) vom Server geholte Teilmenge, eine Art Cache, geht beim Neuladen verloren geladene Verträge
Client-Zustand Browser Ergebnis von Benutzeraktionen, gehört in die URL, damit man Links teilen kann Filter, Suche, gewählter Kontext
URL-/Router-Zustand URL Pfad-Parameter (meist persistenter Zustand), Query-Parameter (meist Client-Zustand) /contract/123456?active=true
Transienter Client-Zustand Browser nicht in der URL Position im Video: gilt für mich, nicht für den Empfänger eines Links
Lokaler UI-Zustand Komponente kurzlebig, stirbt mit der Komponente aufgeklapptes Akkordeon

(Folie 363–369)

Fünf Heuristiken

Welcher Ansatz passt, entscheidet der Kurs anhand von fünf Fragen (Folie 372):

  1. Wie viel Zustand gibt es?
  2. Wie viel davon wird zwischen Teilen der App geteilt?
  3. Wie lange lebt er?
  4. Wie komplex sind Zustand und Zusammenspiel?
  5. Wie komplex sind die Nebeneffekte (z.B. Backend-Aufrufe)?

Grob gilt: wenig und isoliert → Komponente; mehr und geteilt → Service; viel, geteilt und komplex → Bibliothek (Folie 373).

Drei Ansätze

Ansatz Vorteile Nachteile
Komponente einfach und explizit, Zustand bleibt pro Route isoliert ad hoc, kein Teilen mit unabhängigen UI-Teilen, mühsam ab 3 Verschachtelungsebenen, schlecht für Asynchrones
Service mit BehaviorSubject Zustand als Strom, OnPush möglich, Änderungen ohne Überschreiben des Alten Zustand verteilt auf viele Services, kein klares Muster, Konsumenten können Objekte verändern
Bibliothek (z.B. NgRx) Datenfluss in eine Richtung, Nebeneffekte als eigenes Konzept, einheitliches Muster mehr Code und Lernaufwand

(Folie 374–383)

Das BehaviorSubject-Muster für Services: Das Subject ist privat, nach aussen gibt es nur ein lesbares Observable und Methoden zum Ändern. So können Komponenten den Zustand nicht an der Service-Logik vorbei ändern (Folie 279, siehe RxJS).

Widerspruch

Kurs: Service-Zustand wird mit BehaviorSubject gebaut, für grosse Apps empfiehlt sich der Redux-artige NgRx-Store (Quelle - Angular Mastery Workshop, Folie 279, 383). Heute: Für Zustand in Services und Komponenten nimmt man meist Signals (signal, computed). NgRx empfiehlt für neue Anwendungen den schlankeren SignalStore (@ngrx/signals, stabil seit NgRx 18). Server-Zustand lässt sich mit resource()/httpResource() laden (Quelle - Recherche - Angular heute 2026).

Einordnung (Claude)

Die sechs Zustandsarten und die fünf Heuristiken hängen nicht an Angular und gelten für jedes Frontend-Framework. Sie sind ein weiteres Beispiel für Faustregeln statt exakter Entscheidungsverfahren, wie in Heuristiken in BWL und Informatik beschrieben. Die Aussage „Der Server ist die letzte Wahrheit“ entspricht dem Grundsatz dieses Wikis, dass sources/ die unveränderliche Grundlage und wiki/ eine abgeleitete, gepflegte Sicht ist (siehe LLM Wiki).

Verwandt