restate / v1.0.0
ข้อมูลอ้างอิง API
ทุก export ของ @kkwaenggwari/restate 1.0 พร้อมอาร์กิวเมนต์ ค่าที่คืน และพฤติกรรม
ในหน้านี้
Exportเมธอดของ storeเมธอดของ store แบบบันทึกตัวเลือกของ persistedRestateฟิลด์สถานะrestateManager และ scope.managerอินเทอร์เฟซของอะแดปเตอร์ที่จัดเก็บข้อมูลExport
ทุกอย่าง import จาก @kkwaenggwari/restate ทั้งบนเว็บและ React Native
| Export | คืนค่า | ใช้สำหรับ |
|---|---|---|
restate(initial, updater | options?) | hook ของ store | สร้าง store ที่ใช้ร่วมกันในหน่วยความจำ |
persistedRestate(initial, options) | hook ของ store แบบบันทึก | สร้าง store ที่กู้คืนจากและบันทึกลงที่จัดเก็บข้อมูล |
useRestateScope(factory?) | ผลลัพธ์ของ factory หรือ scope | ถือครอง store ภายในคอมโพเนนต์ ถูกทำลายหลัง unmount |
createRestateScope() | RestateScope | ถือครอง store นอก React เรียก destroy() ตอนจบ |
shallow(left, right) | boolean | เปรียบเทียบส่วนที่เลือกลึกหนึ่งระดับ |
batch(callback) | ผลลัพธ์ของ callback | แจ้งผู้สมัครรับครั้งเดียวหลังการเปลี่ยนแปลงหลายครั้ง |
restateManager | RestateManager | รอข้อมูลตอนเริ่มต้นและรันการทำงานแบบกลุ่มกับ store ส่วนกลาง |
createIndexedDBStorage(options?) | RestateStorage | สร้างอะแดปเตอร์ IndexedDB ด้วยชื่อฐานข้อมูลหรือ store ของคุณเอง |
createMMKVStorage(options?) | RestateStorage | สร้างอะแดปเตอร์ MMKV ด้วยอินสแตนซ์หรือการกำหนดค่าของคุณเอง |
เมธอดของ store
store คือฟังก์ชันที่คุณเรียกแบบ hook พร้อมเมธอดเหล่านี้
| สมาชิก | คำอธิบาย |
|---|---|
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() | ปล่อย listener และ updater การสมัครรับหลังจากนั้นจะโยน STORE_DESTROYED |
getInitial() / getServerSnapshot() / getError() | ค่าเริ่มต้น สแนปช็อตจากเซิร์ฟเวอร์ และข้อผิดพลาดของ listener ล่าสุด |
id / kind | id ที่ไม่ซ้ำ memory หรือ persistent |
เมธอดของ store แบบบันทึก
persistedRestate คืน store ที่มีสมาชิกเพิ่มเติมเหล่านี้
| สมาชิก | คำอธิบาย |
|---|---|
ready | Promise ที่สำเร็จเมื่อการโหลดอัตโนมัติจบ แม้จะล้มเหลวก็ตาม ให้ตรวจสอบ status() |
save() | เขียนค่าปัจจุบัน สำเร็จพร้อมค่าที่ถูกเขียนจริง |
restore() | อ่านค่าที่บันทึกไว้เข้าหน่วยความจำ |
hasSaved() | มีระเบียนที่บันทึกไว้หรือไม่ |
clearStorage() | ลบระเบียนที่บันทึกไว้ หน่วยความจำไม่เปลี่ยน |
resetAndClearStorage() | รีเซ็ตหน่วยความจำเป็นค่าเริ่มต้นและลบระเบียนที่บันทึกไว้ |
initialize() | โหลดอีกครั้ง เช่น หลังแก้ไขระเบียนที่ล้มเหลว |
status() | สแนปช็อตสถานะที่ถูกแช่แข็ง เป็นออบเจกต์เดิมจนกว่าฟิลด์ใดจะเปลี่ยน |
useStatus(selector?, isEqual?) | hook ที่เรนเดอร์ใหม่เมื่อสถานะหรือส่วนที่เลือกของมันเปลี่ยน |
key / storageKey / storage | key เชิงตรรกะ key ที่มี namespace และอะแดปเตอร์ที่ใช้อยู่ |
ตัวเลือกของ persistedRestate
key จำเป็นต้องระบุ ตัวเลือกอื่นทั้งหมดไม่บังคับ
| ตัวเลือก | ค่าเริ่มต้น | ความหมาย |
|---|---|---|
key | จำเป็น | key เชิงตรรกะของระเบียน |
namespace | "@kkwaenggwari/restate" | คำนำหน้าของ key ที่บันทึก สตริงว่างจะปิดมัน |
storage | IndexedDB / MMKV | อะแดปเตอร์แทนค่าเริ่มต้นของแพลตฟอร์ม |
autoSave | false | true บันทึกหลังทุกการเปลี่ยนแปลง { delayMs } รอจังหวะหยุด |
version / migrate | 1 / ไม่มี | เวอร์ชันของระเบียนและวิธีอัปเกรดระเบียนเก่า |
validate | ไม่มี | ตรวจสอบค่าก่อนบันทึกและหลังกู้คืนหรือย้ายรูปแบบ |
serializer | JSON | ฟังก์ชัน serialize และ deserialize ของคุณเอง |
operationTimeoutMs | 30000 | เวลาสูงสุดของการทำงานกับที่จัดเก็บข้อมูล |
maxPendingOperations | 256 | จำนวนงานที่รอได้ รวมงานที่กำลังทำ |
maxStorageCharacters | 5242880 | ค่าที่เข้ารหัสแล้วที่ใหญ่ที่สุด เป็นหน่วยโค้ด UTF-16 |
updater / managed / serverSnapshot / onError | — | เหมือนตัวเลือกของ restate |
ฟิลด์สถานะ
status() และ useStatus() คืนฟิลด์เหล่านี้
| ฟิลด์ | ความหมาย |
|---|---|
ready | การโหลดอัตโนมัติจบแล้ว |
dirty | หน่วยความจำต่างจากค่าที่โหลด บันทึก หรือกู้คืนล่าสุด |
operation | การทำงานกับที่จัดเก็บข้อมูลปัจจุบัน หรือ null |
pending | การทำงานกับที่จัดเก็บข้อมูลที่ยังไม่เสร็จ รวมงานที่กำลังทำ |
blocked | การเรียกอะแดปเตอร์ที่ถูกยกเลิกหรือหมดเวลายังไม่จบ |
available | ใช้ที่จัดเก็บข้อมูลได้หรือไม่ |
error / observerError | ข้อผิดพลาดของที่จัดเก็บข้อมูลล่าสุด ข้อผิดพลาดของ listener สถานะล่าสุด |
lastSavedAt / lastRestoredAt | มิลลิวินาที epoch ของความสำเร็จครั้งล่าสุด หรือ null |
restateManager และ scope.manager
manager แต่ละตัวติดตาม store แบบบันทึกที่ลงทะเบียนไว้กับมัน
| สมาชิก | คำอธิบาย |
|---|---|
ready | รอ store ที่ลงทะเบียนอยู่ ณ ตอนเข้าถึง ปฏิเสธด้วย BULK_OPERATION_FAILED |
saveAll(options?) / restoreAll(options?) | รัน save หรือ restore กับทุก store { concurrency } จำกัดงานคู่ขนาน |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | ล้างระเบียน รีเซ็ตหน่วยความจำ หรือทั้งสองอย่าง |
list() / get(idOrKey) / size() | ตรวจดู store ที่ลงทะเบียน |
subscribe(listener) / status() | สังเกตเหตุการณ์ของ manager และข้อผิดพลาดของ listener |
destroyAll() | ทำลายทุก store ที่ลงทะเบียน |
อินเทอร์เฟซของอะแดปเตอร์ที่จัดเก็บข้อมูล
ส่งออบเจกต์ที่มีเมธอดเหล่านี้เป็น storage แต่ละเมธอดคืนค่าหรือ Promise ก็ได้
| เมธอด | คำอธิบาย |
|---|---|
getItem(key, context?) | คืนสตริงที่บันทึกไว้หรือ null |
setItem(key, value, context?) | บันทึกสตริง |
removeItem(key, context?) | ลบระเบียน |
isAvailable?() | รายงานแบบซิงโครนัสว่าใช้ที่จัดเก็บข้อมูลได้หรือไม่ |
clear?() / close?() | การ flush และการเก็บกวาดที่เป็นตัวเลือก |
coordinationKey? | ออบเจกต์ที่ตัวห่อของที่จัดเก็บข้อมูลพื้นฐานเดียวกันใช้ร่วมกัน |