التخزين

يمكنك استعادة قيمة المتجر المسماة في تخزين المتصفح.


خيارات التخزين

إذا تم حذف خيار التخزين، فسيتم إعادة استخدام اسم التخزين الحالي، وإذا لم يكن هناك اسم، فإن في الذاكرةهو القيمة الافتراضية. حدد التخزين عند الحاجة إلى الاستمرارية.

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

يمكن استخدام اسم التخزين بحروف صغيرة كصيغة أساسية، كما يتم تطبيع الأسماء المستعارة لـ IndexedDB و WebSQL و localStorage و sessionStorage إلى نفس الخلفية.

ts
createRxState(0, "count");
// alias가 없으므로 in-memory

createRxState(0, "count", { storage: "auto" });
// 같은 name이어도 storage가 다르면 별도 store

createRxState(0, "theme", { storage: "localstorage" });
createRxState("", "draft", { storage: "sessionstorage" });
createRxState("", "draftAlias", { storage: "sessionStorage" });

تخزين الجلسة

تخزين الجلسة و sessionStorage يستخدم تخزين sessionStorage في المتصفح. تبقى القيم ضمن نطاق علامة التبويب/الجلسة الحالية، وإذا تم إعادة إنشائها بنفس الاسم وخيار التخزين، سيتم ترطيبها.

tsx
const { setDraft, useDraft } = createRxState(
  "",
  "draft",
  { storage: "sessionStorage" },
);

function DraftInput() {
  const draft = useDraft();

  return (
    <input
      value={draft}
      onChange={(event) => setDraft(event.target.value)}
    />
  );
}

مثال على حفظ إعدادات المستخدم

المثال أدناه يحفظ تفضيلات واجهة المستخدم في localStorageعند إعادة إنشائها بنفس الاسم وخيار التخزين بعد التحديث، يتم ترطيب القيم المحفوظة.

tsx
const { setPrefs, usePrefs, prefsReady } = createRxState(
  { compact: false, showHints: true },
  "prefs",
  { storage: "localstorage" },
);

function PreferencesPanel() {
  const prefs = usePrefs();

  return (
    <button onClick={() => setPrefs((prev) => ({ ...prev, compact: !prev.compact }))}>
      compact: {String(prefs.compact)}
    </button>
  );
}
© 2026 بيولناريم. جميع الحقوق محفوظة.مقدمةسياسة معالجة المعلومات الشخصية