restate / v1.0.0
Referensi API
Setiap ekspor @kkwaenggwari/restate 1.0 beserta argumen, nilai kembalian, dan perilakunya.
Di halaman ini
EksporMetode storeMetode store tersimpanOpsi persistedRestateField statusrestateManager dan scope.managerAntarmuka adaptor penyimpananEkspor
Semuanya diimpor dari @kkwaenggwari/restate, di web dan React Native.
| Ekspor | Mengembalikan | Untuk |
|---|---|---|
restate(initial, updater | options?) | Hook store | Membuat store bersama di memori. |
persistedRestate(initial, options) | Hook store tersimpan | Membuat store yang dipulihkan dari dan disimpan ke penyimpanan. |
useRestateScope(factory?) | Hasil factory atau scope | Memiliki store di dalam komponen; dihancurkan setelah unmount. |
createRestateScope() | RestateScope | Memiliki store di luar React; panggil destroy() di akhir. |
shallow(left, right) | boolean | Membandingkan pilihan sedalam satu tingkat. |
batch(callback) | Hasil callback | Memberi tahu pelanggan sekali setelah beberapa perubahan. |
restateManager | RestateManager | Menunggu data saat mulai dan menjalankan operasi massal pada store global. |
createIndexedDBStorage(options?) | RestateStorage | Membuat adaptor IndexedDB dengan nama database atau store sendiri. |
createMMKVStorage(options?) | RestateStorage | Membuat adaptor MMKV dengan instans atau konfigurasi sendiri. |
Metode store
Store adalah fungsi yang Anda panggil sebagai hook, dengan metode-metode ini.
| Anggota | Deskripsi |
|---|---|
useStore() | Mengembalikan seluruh nilai dan dirender ulang pada setiap perubahan. |
useStore(selector, isEqual?) | Mengembalikan pilihan; dirender ulang saat isEqual (bawaan Object.is) melaporkan perubahan. |
get() | Nilai saat ini tanpa berlangganan. |
set(value | updater) | Mengganti nilai atau menghitungnya dari yang sebelumnya. Diabaikan setelah destroy(). |
reset() | Memulihkan nilai awal yang dideklarasikan dan mengembalikannya. |
subscribe(listener) | Memanggil listener(value, previous, event) setelah setiap perubahan; mengembalikan fungsi berhenti berlangganan. |
subscribeSelector(selector, listener, isEqual?) | Memanggil listener hanya saat pilihan berubah. |
on(type, listener) | Mendengarkan event seperti change, reset, save, atau error. |
start() / stop() / isRunning() | Kendali manual atas updater. |
destroy() / isDestroyed() | Melepas listener dan updater. Langganan berikutnya melempar STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Nilai awal, snapshot server, dan kesalahan listener terakhir. |
id / kind | id unik; memory atau persistent. |
Metode store tersimpan
persistedRestate mengembalikan store dengan anggota tambahan ini.
| Anggota | Deskripsi |
|---|---|
ready | Promise yang terpenuhi saat pemuatan otomatis selesai, bahkan jika gagal. Periksa status(). |
save() | Menulis nilai saat ini; terpenuhi dengan nilai yang benar-benar ditulis. |
restore() | Membaca nilai tersimpan ke memori. |
hasSaved() | Apakah ada catatan tersimpan. |
clearStorage() | Menghapus catatan tersimpan; memori tidak berubah. |
resetAndClearStorage() | Mengatur ulang memori ke nilai awal dan menghapus catatan tersimpan. |
initialize() | Memuat lagi, misalnya setelah memperbaiki catatan yang gagal. |
status() | Snapshot status yang dibekukan; objek yang sama sampai ada field yang berubah. |
useStatus(selector?, isEqual?) | Hook yang dirender ulang saat status atau bagian yang dipilihnya berubah. |
key / storageKey / storage | Key logis, key dengan namespace, dan adaptor yang dipakai. |
Opsi persistedRestate
key wajib. Semua opsi lain opsional.
| Opsi | Bawaan | Arti |
|---|---|---|
key | wajib | Key logis catatan. |
namespace | "@kkwaenggwari/restate" | Prefiks key tersimpan; string kosong menonaktifkannya. |
storage | IndexedDB / MMKV | Adaptor pengganti bawaan platform. |
autoSave | false | true menyimpan setelah setiap perubahan; { delayMs } menunggu jeda. |
version / migrate | 1 / tidak ada | Versi catatan dan cara meningkatkan catatan lama. |
validate | tidak ada | Memeriksa nilai sebelum menyimpan dan setelah pemulihan atau migrasi. |
serializer | JSON | Fungsi serialize dan deserialize sendiri. |
operationTimeoutMs | 30000 | Waktu terlama operasi penyimpanan. |
maxPendingOperations | 256 | Operasi tertunda yang diizinkan, termasuk yang aktif. |
maxStorageCharacters | 5242880 | Nilai terenkode terbesar dalam unit kode UTF-16. |
updater / managed / serverSnapshot / onError | — | Sama seperti opsi restate. |
Field status
status() dan useStatus() mengembalikan field-field ini.
| Field | Arti |
|---|---|
ready | Pemuatan otomatis telah selesai. |
dirty | Memori berbeda dari nilai terakhir yang dimuat, disimpan, atau dipulihkan. |
operation | Operasi penyimpanan saat ini atau null. |
pending | Operasi penyimpanan yang belum selesai, termasuk yang aktif. |
blocked | Panggilan adaptor yang dibatalkan atau habis waktu belum selesai. |
available | Apakah penyimpanan dapat dipakai. |
error / observerError | Kesalahan penyimpanan terakhir; kesalahan listener status terakhir. |
lastSavedAt / lastRestoredAt | Milidetik epoch keberhasilan terakhir atau null. |
restateManager dan scope.manager
Setiap manager melacak store tersimpan yang terdaftar padanya.
| Anggota | Deskripsi |
|---|---|
ready | Menunggu store yang terdaftar saat diakses; menolak dengan BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Menjalankan save atau restore di setiap store; { concurrency } membatasi kerja paralel. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Membersihkan catatan, mengatur ulang memori, atau keduanya. |
list() / get(idOrKey) / size() | Inspeksi store yang terdaftar. |
subscribe(listener) / status() | Mengamati event manager dan kesalahan listener. |
destroyAll() | Menghancurkan setiap store yang terdaftar. |
Antarmuka adaptor penyimpanan
Berikan objek dengan metode-metode ini sebagai storage. Setiap metode boleh mengembalikan nilai atau Promise.
| Metode | Deskripsi |
|---|---|
getItem(key, context?) | Mengembalikan string tersimpan atau null. |
setItem(key, value, context?) | Menyimpan string. |
removeItem(key, context?) | Menghapus catatan. |
isAvailable?() | Melaporkan secara sinkron apakah penyimpanan dapat dipakai. |
clear?() / close?() | Flush dan pembersihan opsional. |
coordinationKey? | Objek yang dibagikan oleh pembungkus dari penyimpanan dasar yang sama. |