Referensi API

Fungsi utama yang diekspor oleh global-rx-state dan bentuk pengembaliannya.


createRxState

Jika ada satu argumen, itu adalah mode tuple anonim, dan jika nama diberikan, itu adalah mode objek bernama. Mode bernama mendukung panggilan di dalam komponen.

ts
// Anonymous tuple mode: module top-level only
const [setCount, getCount, useCount, countSubject, countReady] =
  createRxState(0);

// Named object mode
const { setCount, getCount, useCount, countSubject, countReady } =
  createRxState(0, "count", { storage: "auto" });

createRxStateTuple

Digunakan ketika nama ditentukan pada runtime tetapi urutan pengembalian tuple diperlukan. Opsi penyimpanan dapat digunakan bersama kunci bernama.

ts
const [setDraft, getDraft, useDraft, draftSubject, draftReady] =
  createRxStateTuple(
    { content: "" },
    `draft:${tabName}`,
    { storage: "sessionstorage" },
  );

createRxReducer / createRxReducerTuple

ts
const { dispatchCart, getCart, useCart, cartSubject, cartReady } =
  createRxReducer(initialCart, cartReducer, "cart", { storage: "auto" });

const [dispatchFilter, getFilter, useFilter] =
  createRxReducerTuple(
    initialFilterState,
    filterReducer,
    `workspace-filter:${workspaceId}`,
  );

nilai penyimpanan

RxStateStorage mencakup alias yang kompatibel dengan backend persistence. sessionstorage dan sessionStorage menggunakan sessionStorage browser.

ts
type RxStateStorage =
  | "in-memory"
  | "auto"
  | "indexeddb"
  | "IndexedDB"
  | "websql"
  | "WebSQL"
  | "localstorage"
  | "localStorage"
  | "sessionstorage"
  | "sessionStorage";

type RxStateResolvedStorage =
  | "in-memory"
  | "indexeddb"
  | "websql"
  | "localstorage"
  | "sessionstorage";

interface RxStateStorageOptions {
  storage?: RxStateStorage;
  name?: string;
  storeName?: string;
  keyPrefix?: string;
}

automemilih driver localForage yang mungkin dalam urutan IndexedDB, WebSQL, localStorage. Penyimpanan yang diselesaikan dari API pencarian akan mengembalikan backend yang dipilih, bukan auto.

Utilitas penyimpanan

Storage untuk state yang dinamai dan reducer dapat diperiksa dengan tiga utilitas.

ts
function hasRxState(
  name: string,
  storageOptions: RxStateStorageOptions,
): Promise<boolean>;

function findRxStateStorages(
  name: string,
): Promise<RxStateResolvedStorage[]>;

function getRxStateStorageInfo(
  name: string,
  storageOptions?: RxStateStorageOptions,
): Promise<RxStateStorageInfo[]>;

hasRxState memeriksa apakah ada nilai dalam pengaturan storage yang ditentukan. findRxStateStorages mengembalikan backend nyata yang telah diverifikasi tanpa duplikasi, dan getRxStateStorageInfo selalu mengembalikan lokasi penyimpanan yang diverifikasi dalam bentuk array.

ts
interface RxStateStorageInfo {
  key: string;
  storageKey: string;
  fullKey: string;
  storage: RxStateResolvedStorage;
  name: string;
  storeName: string;
  keyPrefix: string;
}

storageKey adalah kunci item yang sebenarnya dan fullKey adalah kunci lengkap yang dapat diperiksa di backend yang mengekspos kunci datar. Jika nama yang sama ada di beberapa pengaturan storage, maka hasil getRxStateStorageInfo juga akan mengembalikan beberapa item.

ts
function hasRxReducer(
  name: string,
  storageOptions: RxStateStorageOptions,
): Promise<boolean>;

function findRxReducerStorages(
  name: string,
): Promise<RxStateResolvedStorage[]>;

function getRxReducerStorageInfo(
  name: string,
  storageOptions?: RxStateStorageOptions,
): Promise<RxStateStorageInfo[]>;
© 2026 Byeolnaerim. Semua hak dilindungi.PengenalanKebijakan Penanganan Data Pribadi