restate / v1.0.0
Referința API
Fiecare export din @kkwaenggwari/restate 1.0, cu argumentele, valorile returnate și comportamentul lui.
Pe această pagină
ExporturiMetodele store-uluiMetodele store-ului salvatOpțiunile persistedRestateCâmpuri de statusrestateManager și scope.managerInterfața adaptorului de stocareExporturi
Totul se importă din @kkwaenggwari/restate, pe web și în React Native.
| Export | Returnează | Pentru |
|---|---|---|
restate(initial, updater | options?) | Hook de store | Crearea unui store partajat în memorie. |
persistedRestate(initial, options) | Hook de store salvat | Crearea unui store care se restaurează din stocare și se salvează în ea. |
useRestateScope(factory?) | Rezultatul factory-ului sau scope | Deținerea de store-uri într-o componentă; sunt distruse după demontare. |
createRestateScope() | RestateScope | Deținerea de store-uri în afara React; apelați destroy() la final. |
shallow(left, right) | boolean | Compararea selecțiilor la un nivel de adâncime. |
batch(callback) | Rezultatul callback-ului | Notificarea abonaților o singură dată după mai multe modificări. |
restateManager | RestateManager | Așteptarea datelor la pornire și rularea operațiunilor în bloc pe store-urile globale. |
createIndexedDBStorage(options?) | RestateStorage | Crearea unui adaptor IndexedDB cu propriul nume de bază de date sau de store. |
createMMKVStorage(options?) | RestateStorage | Crearea unui adaptor MMKV cu propria instanță sau configurație. |
Metodele store-ului
Un store este o funcție pe care o apelați ca hook, cu aceste metode.
| Membru | Descriere |
|---|---|
useStore() | Returnează întreaga valoare și se re-randează la fiecare schimbare. |
useStore(selector, isEqual?) | Returnează o selecție; se re-randează când isEqual (implicit Object.is) raportează o schimbare. |
get() | Valoarea curentă, fără abonare. |
set(value | updater) | Înlocuiește valoarea sau o calculează din cea anterioară. Ignorat după destroy(). |
reset() | Restaurează valoarea inițială declarată și o returnează. |
subscribe(listener) | Apelează listener(value, previous, event) după fiecare schimbare; returnează o funcție de dezabonare. |
subscribeSelector(selector, listener, isEqual?) | Apelează listener doar când se schimbă selecția. |
on(type, listener) | Ascultă evenimente precum change, reset, save sau error. |
start() / stop() / isRunning() | Controlul manual al updater-ului. |
destroy() / isDestroyed() | Eliberează listenerii și updater-ul. Abonările ulterioare aruncă STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Valoarea inițială, snapshotul serverului și ultima eroare a unui listener. |
id / kind | id unic; memory sau persistent. |
Metodele store-ului salvat
persistedRestate returnează un store cu acești membri suplimentari.
| Membru | Descriere |
|---|---|
ready | Promise care se îndeplinește când se încheie încărcarea automată, chiar dacă a eșuat. Verificați status(). |
save() | Scrie valoarea curentă; se îndeplinește cu valoarea scrisă efectiv. |
restore() | Citește valoarea salvată în memorie. |
hasSaved() | Dacă există o înregistrare salvată. |
clearStorage() | Șterge înregistrarea salvată; memoria rămâne neschimbată. |
resetAndClearStorage() | Resetează memoria la valoarea inițială și șterge înregistrarea salvată. |
initialize() | Încarcă din nou, de exemplu după repararea unei înregistrări eșuate. |
status() | Snapshot înghețat al stării; același obiect până se schimbă un câmp. |
useStatus(selector?, isEqual?) | Hook care se re-randează când se schimbă statusul sau partea lui selectată. |
key / storageKey / storage | Key-ul logic, key-ul cu spațiu de nume și adaptorul folosit. |
Opțiunile persistedRestate
key este obligatoriu. Toate celelalte opțiuni sunt opționale.
| Opțiune | Implicit | Semnificație |
|---|---|---|
key | obligatoriu | Key-ul logic al înregistrării. |
namespace | "@kkwaenggwari/restate" | Prefixul key-ului salvat; un șir gol îl dezactivează. |
storage | IndexedDB / MMKV | Adaptor în locul celui implicit al platformei. |
autoSave | false | true salvează după fiecare schimbare; { delayMs } așteaptă o pauză. |
version / migrate | 1 / niciunul | Versiunea înregistrării și modul de actualizare a înregistrărilor mai vechi. |
validate | niciunul | Verifică valorile înainte de salvare și după restaurare sau migrare. |
serializer | JSON | Funcții serialize și deserialize proprii. |
operationTimeoutMs | 30000 | Durata maximă a unei operațiuni de stocare. |
maxPendingOperations | 256 | Operațiuni în așteptare permise, inclusiv cea activă. |
maxStorageCharacters | 5242880 | Cea mai mare valoare codificată, în unități de cod UTF-16. |
updater / managed / serverSnapshot / onError | — | Ca opțiunile lui restate. |
Câmpuri de status
status() și useStatus() returnează aceste câmpuri.
| Câmp | Semnificație |
|---|---|
ready | Încărcarea automată s-a încheiat. |
dirty | Memoria diferă de ultima valoare încărcată, salvată sau restaurată. |
operation | Operațiunea de stocare curentă sau null. |
pending | Operațiuni de stocare neterminate, inclusiv cea activă. |
blocked | Un apel de adaptor anulat sau expirat încă nu s-a încheiat. |
available | Dacă stocarea poate fi folosită. |
error / observerError | Ultima eroare de stocare; ultima eroare a unui listener de status. |
lastSavedAt / lastRestoredAt | Milisecunde epoch ale ultimului succes sau null. |
restateManager și scope.manager
Fiecare manager urmărește store-urile salvate înregistrate la el.
| Membru | Descriere |
|---|---|
ready | Așteaptă store-urile înregistrate în momentul accesului; respinge cu BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Rulează save sau restore pe fiecare store; { concurrency } limitează lucrul în paralel. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Golește înregistrările, resetează memoria sau ambele. |
list() / get(idOrKey) / size() | Inspectarea store-urilor înregistrate. |
subscribe(listener) / status() | Observarea evenimentelor managerului și a erorilor listenerilor. |
destroyAll() | Distruge fiecare store înregistrat. |
Interfața adaptorului de stocare
Transmiteți ca storage un obiect cu aceste metode. Fiecare metodă poate returna o valoare sau un Promise.
| Metodă | Descriere |
|---|---|
getItem(key, context?) | Returnează șirul salvat sau null. |
setItem(key, value, context?) | Salvează un șir. |
removeItem(key, context?) | Șterge o înregistrare. |
isAvailable?() | Raportează sincron dacă stocarea poate fi folosită. |
clear?() / close?() | Golire și curățare opționale. |
coordinationKey? | Obiect partajat de învelișurile aceleiași stocări de bază. |