restate / v1.0.0
Reference API
Každý export @kkwaenggwari/restate 1.0 s argumenty, návratovými hodnotami a chováním.
Na této stránce
ExportyMetody storeMetody ukládaného storeVolby persistedRestateStavová polerestateManager a scope.managerRozhraní adaptéru úložištěExporty
Vše se importuje z @kkwaenggwari/restate, na webu i v React Native.
| Export | Vrací | K čemu |
|---|---|---|
restate(initial, updater | options?) | Hook store | Vytvořit sdílený store v paměti. |
persistedRestate(initial, options) | Hook ukládaného store | Vytvořit store, který se obnovuje a ukládá přes úložiště. |
useRestateScope(factory?) | Výsledek factory nebo scope | Vlastnit story v komponentě; zničí se po odpojení. |
createRestateScope() | RestateScope | Vlastnit story mimo React; na konci zavolejte destroy(). |
shallow(left, right) | boolean | Porovnávat výběry do hloubky jedné úrovně. |
batch(callback) | Výsledek callbacku | Upozornit odběratele jednou po několika změnách. |
restateManager | RestateManager | Čekat na data při spuštění a provádět hromadné operace nad globálními story. |
createIndexedDBStorage(options?) | RestateStorage | Vytvořit adaptér IndexedDB s vlastním názvem databáze nebo store. |
createMMKVStorage(options?) | RestateStorage | Vytvořit adaptér MMKV s vlastní instancí nebo konfigurací. |
Metody store
Store je funkce, kterou voláte jako hook, s těmito metodami.
| Člen | Popis |
|---|---|
useStore() | Vrací celou hodnotu a překreslí se při každé změně. |
useStore(selector, isEqual?) | Vrací výběr; překreslí se, když isEqual (výchozí Object.is) ohlásí změnu. |
get() | Aktuální hodnota bez odběru. |
set(value | updater) | Nahradí hodnotu nebo ji spočítá z předchozí. Po destroy() se ignoruje. |
reset() | Obnoví deklarovanou výchozí hodnotu a vrátí ji. |
subscribe(listener) | Po každé změně volá listener(value, previous, event); vrací funkci pro zrušení odběru. |
subscribeSelector(selector, listener, isEqual?) | Volá listener jen při změně výběru. |
on(type, listener) | Poslouchá události jako change, reset, save nebo error. |
start() / stop() / isRunning() | Ruční ovládání updateru. |
destroy() / isDestroyed() | Uvolní posluchače i updater. Pozdější odběry vyhodí STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Výchozí hodnota, snímek ze serveru a poslední chyba posluchače. |
id / kind | Jedinečné id; memory nebo persistent. |
Metody ukládaného store
persistedRestate vrací store s těmito dalšími členy.
| Člen | Popis |
|---|---|
ready | Promise, který se splní po dokončení automatického načtení, i když selhalo. Zkontrolujte status(). |
save() | Zapíše aktuální hodnotu; splní se hodnotou, která se skutečně zapsala. |
restore() | Načte uloženou hodnotu do paměti. |
hasSaved() | Zda existuje uložený záznam. |
clearStorage() | Smaže uložený záznam; paměť se nemění. |
resetAndClearStorage() | Vrátí paměť na výchozí hodnotu a smaže uložený záznam. |
initialize() | Načte znovu, například po opravě selhaného záznamu. |
status() | Zmrazený snímek stavu; stejný objekt, dokud se nezmění některé pole. |
useStatus(selector?, isEqual?) | Hook, který se překreslí, když se změní stav nebo jeho vybraná část. |
key / storageKey / storage | Logický klíč, klíč s jmenným prostorem a použitý adaptér. |
Volby persistedRestate
key je povinný. Všechny ostatní volby jsou volitelné.
| Volba | Výchozí | Význam |
|---|---|---|
key | povinné | Logický klíč záznamu. |
namespace | "@kkwaenggwari/restate" | Předpona ukládaného klíče; prázdný řetězec ji vypne. |
storage | IndexedDB / MMKV | Adaptér místo výchozího pro platformu. |
autoSave | false | true ukládá po každé změně; { delayMs } čeká na pauzu. |
version / migrate | 1 / žádné | Verze záznamu a způsob upgradu starších záznamů. |
validate | žádné | Kontroluje hodnoty před uložením a po obnovení či migraci. |
serializer | JSON | Vlastní funkce serialize a deserialize. |
operationTimeoutMs | 30000 | Nejdelší doba operace s úložištěm. |
maxPendingOperations | 256 | Povolený počet čekajících operací včetně aktivní. |
maxStorageCharacters | 5242880 | Největší zakódovaná hodnota v kódových jednotkách UTF-16. |
updater / managed / serverSnapshot / onError | — | Stejné jako volby restate. |
Stavová pole
status() a useStatus() vracejí tato pole.
| Pole | Význam |
|---|---|
ready | Automatické načtení skončilo. |
dirty | Paměť se liší od naposledy načtené, uložené nebo obnovené hodnoty. |
operation | Probíhající operace s úložištěm, nebo null. |
pending | Nedokončené operace s úložištěm včetně aktivní. |
blocked | Zrušené volání adaptéru nebo volání s vypršeným časem ještě neskončilo. |
available | Zda lze úložiště použít. |
error / observerError | Poslední chyba úložiště; poslední chyba posluchače stavu. |
lastSavedAt / lastRestoredAt | Milisekundy epoch posledního úspěchu, nebo null. |
restateManager a scope.manager
Každý manager sleduje ukládané story, které jsou u něj registrované.
| Člen | Popis |
|---|---|
ready | Čeká na story registrované v okamžiku přístupu; odmítne s BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Spustí save nebo restore na každém store; { concurrency } omezuje souběžnou práci. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Vymaže záznamy, obnoví paměť, nebo obojí. |
list() / get(idOrKey) / size() | Prohlížení registrovaných store. |
subscribe(listener) / status() | Sledování událostí manageru a chyb posluchačů. |
destroyAll() | Zničí každý registrovaný store. |
Rozhraní adaptéru úložiště
Předejte jako storage objekt s těmito metodami. Každá metoda může vrátit hodnotu nebo Promise.
| Metoda | Popis |
|---|---|
getItem(key, context?) | Vrací uložený řetězec, nebo null. |
setItem(key, value, context?) | Uloží řetězec. |
removeItem(key, context?) | Smaže záznam. |
isAvailable?() | Synchronně hlásí, zda lze úložiště použít. |
clear?() / close?() | Volitelné vyprázdnění a úklid. |
coordinationKey? | Objekt sdílený obaly téhož podkladového úložiště. |