اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

عندما استخدم redux لحفظ بيانات يقوم بحفظه لكن عند عمل تحديث البيانات تختفي.

كيف يمكنني الاحتفاظ بالبيانات مثلا إذا كنت أريد حماية صفحات وجعلها لا تفتح إلا عند إدخال كود معين وعند إدخاله يتم حفظه واستعماله لاحقاً

Recommended Posts

  • 0
نشر

مع الاسف لا يمكنك القيام بذلك بدون backend.

ولكن اذا كان التطبيق محلي (خاص بك) يمكنك حفظ البيانات في ال local Storage عند كل تعديل على الـ store وعندما تقوم بتحميل الصفحة قم بإحضار ال store من ال local Storage.

ويمكنك التحكم بالوظيفة الخاصة بإحضار البيانات من ال local Storage عن طريف كود يدخله المستخدم.

  • 0
نشر

عند استخدام Redux لإدارة الحالة في تطبيقات الويب، فإنه يقوم بتخزين البيانات في الذاكرة العابرة (RAM)، وبالتالي فإن البيانات تفقد عند تحديث الصفحة. للحفاظ على البيانات حتى بعد تحديث الصفحة، يمكنك استخدام التخزين المحلي (Local Storage) أو التخزين الجلسي (Session Storage) للمتصفح، بداية قم بإضافة كود لحفظ البيانات في local storage كلما قمت بتحديث الحالة في Redux  واستخدم:

localStorage.setItem('key', value)

لحفظ البيانات، وتأكد من تحويل البيانات إلى سلسلة نصية إذا كانت البيانات تحتوي على أنواع معقدة (مثل الأجسام أو الصفوف).

store.subscribe(() => { localStorage.setItem('formData', JSON.stringify(store.getState().formData)); });

وعند بدء تشغيل التطبيق، يمكنك قراءة البيانات من local storage واستخدامها لتهيئة حالة Redux.

const savedFormData = localStorage.getItem('formData'); const initialState = saved formData ? JSON.parse(savedFormData) : {}; const store = createStore(rootReducer, { formData: initialState });

ثم بعدها يمكنك استخدام البيانات المحفوظة في الحالة العامة للتطبيق، ويمكنك استخدام موصلات Redux (مثل connect في react-redux أو useSelector في الخطافات) لقراءة البيانات.

  • 0
نشر

كما بالتعليقات السابقة فإن البيانات لا يتم حفظها وذلك هو الطبيعي لأنك تحتاج لتطوير واجهة خلفية لتنفيذ ما تريد بطريقة جيدة وآمنة.

  • لتقوم بحفظ البيانات على الخادم في قاعدة بيانات
  • كما أن خطوات التحقق من صحة رموز الدخول أو المفاتيح التي يدخلها المستخدم يجب أن يتم على الخادم وليس على العميل.
  • في حال وجود محتوى حساس أو صفحات مقيدة الوصول، يجب تحديد ذلك على الخادم وفق سياسات الوصول.

ولكن إذا كان التطبيق للتدريب مثلاً فيمكنك استخدام ال localStorage أو AsyncStorage وأيضاً يمكنك تجربة مكتبة 

Redux Persist و هي مكتبة تسمح لك بحفظ بيانات Redux في تخزين محلي، مثل localStorage وتعتبر سهولة الاستخدام و لا تتطلب أي كتابة أكواد إضافية لذلك فهي مناسبة مناسبة للتطبيقات البسيطة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...