restate / v1.0.0
API-Referenz
Jeder Export von @kkwaenggwari/restate 1.0 mit Argumenten, Rückgabewerten und Verhalten.
Auf dieser Seite
ExporteStore-MethodenMethoden gespeicherter StoresOptionen von persistedRestateStatusfelderrestateManager und scope.managerSchnittstelle eines SpeicheradaptersExporte
Alles wird im Web und unter React Native aus @kkwaenggwari/restate importiert.
| Export | Gibt zurück | Wofür |
|---|---|---|
restate(initial, updater | options?) | Store-Hook | Einen geteilten Arbeitsspeicher-Store erstellen. |
persistedRestate(initial, options) | Hook eines gespeicherten Stores | Einen Store erstellen, der über Speicher wiederherstellt und speichert. |
useRestateScope(factory?) | Ergebnis der Factory oder Scope | Stores in einer Komponente besitzen; nach dem Unmount zerstört. |
createRestateScope() | RestateScope | Stores außerhalb von React besitzen; am Ende destroy() aufrufen. |
shallow(left, right) | boolean | Auswahlen eine Ebene tief vergleichen. |
batch(callback) | Ergebnis des Callbacks | Abonnenten nach mehreren Änderungen einmal benachrichtigen. |
restateManager | RestateManager | Auf Startdaten warten und Sammeloperationen auf globalen Stores ausführen. |
createIndexedDBStorage(options?) | RestateStorage | Einen IndexedDB-Adapter mit eigenem Datenbank- oder Store-Namen erstellen. |
createMMKVStorage(options?) | RestateStorage | Einen MMKV-Adapter mit eigener Instanz oder Konfiguration erstellen. |
Store-Methoden
Ein Store ist eine Funktion, die du als Hook aufrufst, mit diesen Methoden.
| Member | Beschreibung |
|---|---|
useStore() | Gibt den ganzen Wert zurück und rendert bei jeder Änderung neu. |
useStore(selector, isEqual?) | Gibt die Auswahl zurück; rendert neu, wenn isEqual (Standard: Object.is) eine Änderung meldet. |
get() | Aktueller Wert, ohne zu abonnieren. |
set(value | updater) | Ersetzt den Wert oder berechnet ihn aus dem vorherigen. Nach destroy() ignoriert. |
reset() | Stellt den deklarierten Anfangswert wieder her und gibt ihn zurück. |
subscribe(listener) | Ruft nach jeder Änderung listener(value, previous, event) auf; gibt eine Funktion zum Abmelden zurück. |
subscribeSelector(selector, listener, isEqual?) | Ruft listener nur auf, wenn sich die Auswahl ändert. |
on(type, listener) | Hört auf Events wie change, reset, save oder error. |
start() / stop() / isRunning() | Steuert den updater von Hand. |
destroy() / isDestroyed() | Gibt Listener und updater frei. Spätere Abonnements werfen STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Anfangswert, Server-Snapshot und der letzte Listener-Fehler. |
id / kind | Eindeutige id; memory oder persistent. |
Methoden gespeicherter Stores
persistedRestate gibt einen Store mit diesen zusätzlichen Membern zurück.
| Member | Beschreibung |
|---|---|
ready | Promise, die sich erfüllt, wenn das automatische Laden fertig ist – auch wenn es fehlschlug. Prüfe status(). |
save() | Schreibt den aktuellen Wert; erfüllt sich mit dem tatsächlich geschriebenen Wert. |
restore() | Liest den gespeicherten Wert in den Arbeitsspeicher. |
hasSaved() | Ob ein gespeicherter Datensatz existiert. |
clearStorage() | Löscht den gespeicherten Datensatz; der Arbeitsspeicher bleibt unverändert. |
resetAndClearStorage() | Setzt den Arbeitsspeicher auf den Anfangswert zurück und löscht den gespeicherten Datensatz. |
initialize() | Lädt erneut, etwa nachdem ein fehlerhafter Datensatz repariert wurde. |
status() | Eingefrorener Status-Snapshot; dasselbe Objekt, bis sich ein Feld ändert. |
useStatus(selector?, isEqual?) | Hook, der neu rendert, wenn sich der Status oder der ausgewählte Teil ändert. |
key / storageKey / storage | Logischer Key, Key mit Namespace und der verwendete Adapter. |
Optionen von persistedRestate
key ist erforderlich. Alle anderen Optionen sind optional.
| Option | Standard | Bedeutung |
|---|---|---|
key | erforderlich | Logischer Key des Datensatzes. |
namespace | "@kkwaenggwari/restate" | Präfix des gespeicherten Keys; ein leerer String deaktiviert es. |
storage | IndexedDB / MMKV | Adapter, der statt des Plattformstandards verwendet wird. |
autoSave | false | true speichert nach jeder Änderung; { delayMs } wartet auf eine Pause. |
version / migrate | 1 / keine | Version des Datensatzes und wie ältere Datensätze aktualisiert werden. |
validate | keine | Prüft Werte vor dem Speichern sowie nach dem Wiederherstellen oder Migrieren. |
serializer | JSON | Eigene serialize- und deserialize-Funktionen. |
operationTimeoutMs | 30000 | Zeitlimit für eine Speicheroperation. |
maxPendingOperations | 256 | Erlaubte ausstehende Operationen, einschließlich der aktiven. |
maxStorageCharacters | 5242880 | Größter kodierter Wert in UTF-16-Codeeinheiten. |
updater / managed / serverSnapshot / onError | — | Wie die Optionen von restate. |
Statusfelder
status() und useStatus() geben diese Felder zurück.
| Feld | Bedeutung |
|---|---|
ready | Das automatische Laden ist abgeschlossen. |
dirty | Der Arbeitsspeicher unterscheidet sich vom zuletzt geladenen, gespeicherten oder wiederhergestellten Wert. |
operation | Die gerade laufende Speicheroperation oder null. |
pending | Nicht abgeschlossene Speicheroperationen, einschließlich der aktiven. |
blocked | Ein abgebrochener oder abgelaufener Adapteraufruf ist noch nicht abgeschlossen. |
available | Ob Speicher genutzt werden kann. |
error / observerError | Letzter Speicherfehler; letzter Fehler eines Status-Listeners. |
lastSavedAt / lastRestoredAt | Epoch-Millisekunden des letzten Erfolgs oder null. |
restateManager und scope.manager
Jeder Manager verfolgt die bei ihm registrierten persistenten Stores.
| Member | Beschreibung |
|---|---|
ready | Wartet auf die zum Zugriffszeitpunkt registrierten Stores; lehnt mit BULK_OPERATION_FAILED ab. |
saveAll(options?) / restoreAll(options?) | Führt save oder restore für jeden Store aus; { concurrency } begrenzt parallele Arbeit. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Datensätze löschen, Arbeitsspeicher zurücksetzen oder beides. |
list() / get(idOrKey) / size() | Registrierte Stores untersuchen. |
subscribe(listener) / status() | Manager-Events und Listener-Fehler beobachten. |
destroyAll() | Jeden registrierten Store zerstören. |
Schnittstelle eines Speicheradapters
Übergib als storage ein Objekt mit diesen Methoden. Jede Methode darf einen Wert oder eine Promise zurückgeben.
| Methode | Beschreibung |
|---|---|
getItem(key, context?) | Gibt den gespeicherten String oder null zurück. |
setItem(key, value, context?) | Speichert den String. |
removeItem(key, context?) | Löscht den Datensatz. |
isAvailable?() | Meldet synchron, ob Speicher genutzt werden kann. |
clear?() / close?() | Optionales Leeren und Aufräumen. |
coordinationKey? | Gemeinsames Objekt für Wrapper desselben zugrunde liegenden Speichers. |