restate / v1.0.0

Справочник API

Все экспорты @kkwaenggwari/restate 1.0 — с аргументами, возвращаемыми значениями и поведением.

На этой страницеЭкспортыМетоды хранилищаМетоды сохраняемого хранилищаОпции persistedRestateПоля статусаrestateManager и scope.managerИнтерфейс адаптера хранилища

Экспорты

Всё импортируется из @kkwaenggwari/restate — и в вебе, и в React Native.

ЭкспортВозвращаетДля чего
restate(initial, updater | options?)Хук хранилищаСоздать общее хранилище в памяти.
persistedRestate(initial, options)Хук сохраняемого хранилищаСоздать хранилище, которое восстанавливается и сохраняется через хранилище данных.
useRestateScope(factory?)Результат фабрики или областьВладеть хранилищами в компоненте; уничтожаются после размонтирования.
createRestateScope()RestateScopeВладеть хранилищами вне React; в конце вызовите destroy().
shallow(left, right)booleanСравнивать выборки на один уровень вглубь.
batch(callback)Результат колбэкаУведомить подписчиков один раз после нескольких изменений.
restateManagerRestateManagerДождаться данных при запуске и выполнять массовые операции над глобальными хранилищами.
createIndexedDBStorage(options?)RestateStorageСоздать адаптер IndexedDB со своим именем базы данных или хранилища.
createMMKVStorage(options?)RestateStorageСоздать адаптер MMKV со своим экземпляром или конфигурацией.

Методы хранилища

Хранилище — это функция, которую вы вызываете как хук, с этими методами.

ЧленОписание
useStore()Возвращает всё значение и перерисовывается при каждом изменении.
useStore(selector, isEqual?)Возвращает выборку; перерисовывается, когда isEqual (по умолчанию Object.is) сообщает об изменении.
get()Текущее значение без подписки.
set(value | updater)Заменяет значение или вычисляет его из предыдущего. Игнорируется после destroy().
reset()Восстанавливает объявленное начальное значение и возвращает его.
subscribe(listener)Вызывает listener(value, previous, event) после каждого изменения; возвращает функцию отписки.
subscribeSelector(selector, listener, isEqual?)Вызывает listener, только когда меняется выборка.
on(type, listener)Слушает события вроде change, reset, save или error.
start() / stop() / isRunning()Ручное управление updater.
destroy() / isDestroyed()Освобождает слушателей и updater. Последующие подписки выбрасывают STORE_DESTROYED.
getInitial() / getServerSnapshot() / getError()Начальное значение, серверный снимок и последняя ошибка слушателя.
id / kindУникальный id; memory или persistent.

Методы сохраняемого хранилища

persistedRestate возвращает хранилище с этими дополнительными членами.

ЧленОписание
readyPromise, который выполняется, когда автоматическая загрузка завершилась, даже неудачно. Проверяйте status().
save()Записывает текущее значение; выполняется с фактически записанным значением.
restore()Читает сохранённое значение в память.
hasSaved()Есть ли сохранённая запись.
clearStorage()Удаляет сохранённую запись; память не меняется.
resetAndClearStorage()Возвращает память к начальному значению и удаляет сохранённую запись.
initialize()Загружает заново — например, после исправления сбойной записи.
status()Замороженный снимок статуса; тот же объект, пока не изменится какое-либо поле.
useStatus(selector?, isEqual?)Хук, который перерисовывается, когда меняется статус или выбранная его часть.
key / storageKey / storageЛогический ключ, ключ с пространством имён и используемый адаптер.

Опции persistedRestate

key обязателен. Все остальные опции необязательны.

ОпцияПо умолчаниюЗначение
keyобязательноЛогический ключ записи.
namespace"@kkwaenggwari/restate"Префикс сохраняемого ключа; пустая строка его отключает.
storageIndexedDB / MMKVАдаптер вместо адаптера платформы по умолчанию.
autoSavefalsetrue сохраняет после каждого изменения; { delayMs } ждёт паузы.
version / migrate1 / нетВерсия записи и способ обновления старых записей.
validateнетПроверяет значения перед сохранением и после восстановления или миграции.
serializerJSONСвои функции serialize и deserialize.
operationTimeoutMs30000Максимальное время операции с хранилищем.
maxPendingOperations256Допустимое число ожидающих операций, включая активную.
maxStorageCharacters5242880Максимальный размер закодированного значения в кодовых единицах UTF-16.
updater / managed / serverSnapshot / onError—Как в опциях restate.

Поля статуса

status() и useStatus() возвращают эти поля.

ПолеЗначение
readyАвтоматическая загрузка завершилась.
dirtyПамять отличается от последнего загруженного, сохранённого или восстановленного значения.
operationТекущая операция с хранилищем или null.
pendingНезавершённые операции с хранилищем, включая активную.
blockedОтменённый или просроченный вызов адаптера ещё не завершился.
availableМожно ли использовать хранилище.
error / observerErrorПоследняя ошибка хранилища; последняя ошибка слушателя статуса.
lastSavedAt / lastRestoredAtВремя последнего успеха в миллисекундах epoch или null.

restateManager и scope.manager

Каждый менеджер отслеживает зарегистрированные в нём сохраняемые хранилища.

ЧленОписание
readyЖдёт хранилища, зарегистрированные на момент обращения; отклоняется с BULK_OPERATION_FAILED.
saveAll(options?) / restoreAll(options?)Выполняет save или restore для каждого хранилища; { concurrency } ограничивает параллельную работу.
clearStorageAll() / resetAll() / resetAllAndClearStorage()Очищает записи, сбрасывает память или и то и другое.
list() / get(idOrKey) / size()Просмотр зарегистрированных хранилищ.
subscribe(listener) / status()Наблюдение за событиями менеджера и ошибками слушателей.
destroyAll()Уничтожает все зарегистрированные хранилища.

Интерфейс адаптера хранилища

Передайте в storage объект с этими методами. Каждый метод может вернуть значение или Promise.

МетодОписание
getItem(key, context?)Возвращает сохранённую строку или null.
setItem(key, value, context?)Сохраняет строку.
removeItem(key, context?)Удаляет запись.
isAvailable?()Синхронно сообщает, можно ли использовать хранилище.
clear?() / close?()Необязательные сброс буфера и очистка.
coordinationKey?Объект, общий для обёрток одного и того же нижележащего хранилища.

Поиск по документации

Поиск по заголовкам, описаниям и тексту всех руководств.