انتقل إلى محتوى الدرس

Two Contexts for State Dispatch فصل سياق الحالة عن الإرسال

ارتقِ بهندسة إدارة الحالة في تطبيقات React الكبيرة عبر دمج useReducer مع سياقين منفصلين للقراءة والإرسال لتمكين المكونات العميقة من التحديث المباشر بنظافة.
4 صفوف تعليمية
ReactJS
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بدلاً من دمج المصفوفة ودالة الإرسال في كائن سياق واحد، يوصي التوثيق الهندسي الرسمي لمكتبة React بإنشاء سياقين منفصلين تماماً:

  • سياق القراءة TasksContext: يزود المكونات العارضة والعدادات بمصفوفة المهام الحالية.
  • سياق الإرسال TasksDispatchContext: يزود النماذج وأزرار التحكم بدالة dispatch لإرسال أوامر الإضافة والتبديل والحذف.

وبما أن React تضمن ثبات هوية دالة dispatch عبر التصييرات المتتالية، فإن المكونات التي تستهلك سياق الإرسال فقط مثل نموذج إضافة مهمة جديدة لا تضطر لإعادة تصيير نفسها عند تبديل حالة مهمة أخرى في القائمة.

الصف 2 كود برمجي
HTML
const TasksContext = createContext(null);
const TasksDispatchContext = createContext(null);

function DualWire({ tasks, dispatch, children }) {
  return (
    <TasksContext.Provider value={tasks}>
      <TasksDispatchContext.Provider value={dispatch}>
        {children}
      </TasksDispatchContext.Provider>
    </TasksContext.Provider>
  );
}
الصف 3 معاينة حية
الصف 4 ملاحظة هامة