Enums & unterstützende Typen
Die kleineren öffentlichen Typen: Enums, Filter, der Cache-Schnappschuss, die für Endnutzer bestimmte Exception und der Observable-Vertrag.
RefetchOnMount#
RefetchOnMount#
Steuert, ob ein Execute mit Key, das gecachte Daten vorfindet, zusätzlich
im Hintergrund neu lädt. Ein Key ohne gecachte Daten fetcht immer, unabhängig von
dieser Einstellung.
| Wert | Typ | Beschreibung |
|---|---|---|
| Never | 0 | Bedient den Cache und lädt beim Mount nie neu. Invalidierung lädt weiterhin neu. |
| IfStale | 1 | Lädt nur dann im Hintergrund neu, wenn die Daten älter als die Stale-Time sind. |
| Always | 2 | Lädt immer im Hintergrund neu, selbst wenn die Daten noch frisch sind. |
RefetchType#
RefetchType#
Welche invalidierten Einträge sofort neu laden.
| Wert | Typ | Beschreibung |
|---|---|---|
| Active | 0 | Lädt Einträge mit aktiven Subscribern neu; Einträge ohne bleiben als stale markiert und laden neu, sobald die nächste Komponente auf ihnen mountet. |
| All | 1 | Lädt jeden passenden Eintrag neu, abonniert oder nicht. |
| None | 2 | Markiert Einträge nur als stale; bis zum nächsten Mount lädt nichts neu. |
InvalidateOptions#
InvalidateOptions#
Optionen für DejaClient.InvalidateAsync. Mit Exact false (dem
Default) passt der Key per Präfix — wer ["todos"] invalidiert,
invalidiert auch ["todos", 1]. Predicate filtert die
passenden Keys weiter.
QueryFilter#
QueryFilter#
Schränkt ein, welche Einträge ein Key in DejaClient.Remove und
DejaClient.RefetchAsync trifft. Standardmäßig Präfix-Matching.
CacheEntryState#
CacheEntryState#
Ein schreibgeschützter Schnappschuss eines Cache-Eintrags, zurückgegeben von
DejaClient.GetState. Die Werte sind zum Zeitpunkt des Aufrufs
untereinander konsistent und aktualisieren sich danach nicht mehr. Die
Cache-Inspektoren auf dieser Seite rendern genau diesen Record.
DisplayUserException#
DisplayUserException#
Eine Exception, deren DisplayMessage gefahrlos — und absichtlich — dem
Endnutzer angezeigt werden kann. Queries und Mutations leiten sie zusätzlich zu den
allgemeinen Fehler-Callbacks an die dedizierten
OnDisplayUserError-Callbacks weiter. Die Konstruktoren mit einer Message
verwenden sie sowohl für die Anzeige als auch für Exception.Message; die
Konstruktoren mit zwei Messages trennen die für den Nutzer bestimmte Message von der
internen.
DejaObservable / IDejaObservable#
IDejaObservable#
Zustand, der genau einen Besitzer über Änderungen benachrichtigen kann — implementiert
von Query<T> und Mutation<T>, konsumiert von
DejaComponentBase. Attach registriert den einzigen Listener
und gibt ein Handle zurück, dessen Dispose ihn (idempotent) wieder löst; ein Attach,
während bereits ein Listener registriert ist, wirft
InvalidOperationException. Bewusst single-listener statt eines
Multicast-Events: Die eine Komponente, der der Zustand gehört, ist das Einzige, das
von ihm benachrichtigt werden darf — genau das verhindert, dass zwei Komponenten mit
eigenen Queries einander neu rendern.
DejaObservable#
Basisimplementierung, die den einzelnen Listener-Slot hält. Abgeleiteter Zustand ruft
NotifyChanged() einmal pro Zustandsübergang auf, nachdem jede Property
des Übergangs gesetzt wurde; ohne angehefteten Listener ist es ein sicherer No-op.
Erweitere sie, wenn du eigenen beobachtbaren Zustand baust, für den eine
DejaComponentBase-Komponente neu rendern soll.