restate / v1.0.0
Tham chiếu API
Mọi export của @kkwaenggwari/restate 1.0, kèm đối số, giá trị trả về và hành vi.
Trên trang này
ExportPhương thức của storePhương thức của store được lưuTùy chọn của persistedRestateCác trường trạng tháirestateManager và scope.managerGiao diện adapter lưu trữExport
Mọi thứ được import từ @kkwaenggwari/restate, trên web và React Native.
| Export | Trả về | Dùng để |
|---|---|---|
restate(initial, updater | options?) | Hook store | Tạo store dùng chung trong bộ nhớ. |
persistedRestate(initial, options) | Hook store được lưu | Tạo store được khôi phục từ và lưu vào bộ nhớ lưu trữ. |
useRestateScope(factory?) | Kết quả factory hoặc scope | Sở hữu store bên trong component; bị hủy sau khi unmount. |
createRestateScope() | RestateScope | Sở hữu store bên ngoài React; gọi destroy() khi xong. |
shallow(left, right) | boolean | So sánh phần chọn ở độ sâu một cấp. |
batch(callback) | Kết quả của callback | Thông báo cho bên đăng ký một lần sau nhiều thay đổi. |
restateManager | RestateManager | Chờ dữ liệu khi khởi động và chạy thao tác hàng loạt trên store toàn cục. |
createIndexedDBStorage(options?) | RestateStorage | Tạo adapter IndexedDB với tên cơ sở dữ liệu hoặc store riêng. |
createMMKVStorage(options?) | RestateStorage | Tạo adapter MMKV với thể hiện hoặc cấu hình riêng. |
Phương thức của store
Store là một hàm bạn gọi như hook, kèm các phương thức này.
| Thành phần | Mô tả |
|---|---|
useStore() | Trả về toàn bộ giá trị và render lại mỗi khi thay đổi. |
useStore(selector, isEqual?) | Trả về phần chọn; render lại khi isEqual (mặc định Object.is) báo có thay đổi. |
get() | Giá trị hiện tại, không đăng ký. |
set(value | updater) | Thay giá trị hoặc tính từ giá trị trước. Bị bỏ qua sau destroy(). |
reset() | Khôi phục giá trị ban đầu đã khai báo và trả về nó. |
subscribe(listener) | Gọi listener(value, previous, event) sau mỗi thay đổi; trả về hàm hủy đăng ký. |
subscribeSelector(selector, listener, isEqual?) | Chỉ gọi listener khi phần chọn thay đổi. |
on(type, listener) | Lắng nghe các sự kiện như change, reset, save hoặc error. |
start() / stop() / isRunning() | Điều khiển thủ công updater. |
destroy() / isDestroyed() | Giải phóng listener và updater. Đăng ký sau đó sẽ ném STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Giá trị ban đầu, snapshot máy chủ và lỗi listener gần nhất. |
id / kind | id duy nhất; memory hoặc persistent. |
Phương thức của store được lưu
persistedRestate trả về store có thêm các thành phần này.
| Thành phần | Mô tả |
|---|---|
ready | Promise hoàn tất khi lần tải tự động kết thúc, kể cả khi thất bại. Hãy kiểm tra status(). |
save() | Ghi giá trị hiện tại; hoàn tất với giá trị thực sự được ghi. |
restore() | Đọc giá trị đã lưu vào bộ nhớ. |
hasSaved() | Có bản ghi đã lưu hay không. |
clearStorage() | Xóa bản ghi đã lưu; bộ nhớ không đổi. |
resetAndClearStorage() | Đặt bộ nhớ về giá trị ban đầu và xóa bản ghi đã lưu. |
initialize() | Tải lại, ví dụ sau khi sửa một bản ghi bị lỗi. |
status() | Snapshot trạng thái đã đóng băng; vẫn là cùng đối tượng cho đến khi có trường thay đổi. |
useStatus(selector?, isEqual?) | Hook render lại khi trạng thái hoặc phần được chọn của nó thay đổi. |
key / storageKey / storage | Key logic, key có namespace và adapter đang dùng. |
Tùy chọn của persistedRestate
key là bắt buộc. Mọi tùy chọn khác đều không bắt buộc.
| Tùy chọn | Mặc định | Ý nghĩa |
|---|---|---|
key | bắt buộc | Key logic của bản ghi. |
namespace | "@kkwaenggwari/restate" | Tiền tố của key được lưu; chuỗi rỗng sẽ tắt nó. |
storage | IndexedDB / MMKV | Adapter thay cho mặc định của nền tảng. |
autoSave | false | true lưu sau mỗi thay đổi; { delayMs } chờ một khoảng dừng. |
version / migrate | 1 / không có | Phiên bản bản ghi và cách nâng cấp bản ghi cũ. |
validate | không có | Kiểm tra giá trị trước khi lưu và sau khi khôi phục hoặc di chuyển. |
serializer | JSON | Hàm serialize và deserialize riêng. |
operationTimeoutMs | 30000 | Thời gian tối đa của một thao tác lưu trữ. |
maxPendingOperations | 256 | Số thao tác được phép chờ, tính cả thao tác đang chạy. |
maxStorageCharacters | 5242880 | Giá trị mã hóa lớn nhất, tính bằng đơn vị mã UTF-16. |
updater / managed / serverSnapshot / onError | — | Giống các tùy chọn của restate. |
Các trường trạng thái
status() và useStatus() trả về các trường này.
| Trường | Ý nghĩa |
|---|---|
ready | Lần tải tự động đã kết thúc. |
dirty | Bộ nhớ khác với giá trị được tải, lưu hoặc khôi phục gần nhất. |
operation | Thao tác lưu trữ hiện tại hoặc null. |
pending | Các thao tác lưu trữ chưa xong, tính cả thao tác đang chạy. |
blocked | Một lời gọi adapter bị hủy hoặc hết thời gian vẫn chưa kết thúc. |
available | Có dùng được bộ nhớ lưu trữ hay không. |
error / observerError | Lỗi lưu trữ gần nhất; lỗi listener trạng thái gần nhất. |
lastSavedAt / lastRestoredAt | Mili giây epoch của lần thành công gần nhất hoặc null. |
restateManager và scope.manager
Mỗi manager theo dõi các store được lưu đã đăng ký với nó.
| Thành phần | Mô tả |
|---|---|
ready | Chờ các store đã đăng ký tại thời điểm truy cập; từ chối với BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Chạy save hoặc restore trên mọi store; { concurrency } giới hạn công việc song song. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Xóa bản ghi, đặt lại bộ nhớ, hoặc cả hai. |
list() / get(idOrKey) / size() | Kiểm tra các store đã đăng ký. |
subscribe(listener) / status() | Theo dõi sự kiện của manager và lỗi listener. |
destroyAll() | Hủy mọi store đã đăng ký. |
Giao diện adapter lưu trữ
Truyền một đối tượng có các phương thức này làm storage. Mỗi phương thức có thể trả về giá trị hoặc Promise.
| Phương thức | Mô tả |
|---|---|
getItem(key, context?) | Trả về chuỗi đã lưu hoặc null. |
setItem(key, value, context?) | Lưu một chuỗi. |
removeItem(key, context?) | Xóa một bản ghi. |
isAvailable?() | Báo đồng bộ việc có dùng được bộ nhớ lưu trữ hay không. |
clear?() / close?() | Flush và dọn dẹp tùy chọn. |
coordinationKey? | Đối tượng dùng chung bởi các lớp bọc của cùng một bộ nhớ lưu trữ nền. |