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

Encapsulating Provider Module تغليف الحالة بملف مزود موحد

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

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

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

لإبقاء المكون الجذري App نظيفاً ومختصراً، انقل كلاً من السياقين ودالة المخفض tasksReducer والبيانات الابتدائية ومكون التغليف TasksProvider({ children }) إلى ملف وحدة برمجية مستقلة مثل TasksContext.jsx.

داخل TasksProvider يتولى استدعاء واحد لخطاف useReducer إدارة دورة حياة البيانات وتغذية المزودين المتداخلين معاً، فتتعامل بقية ملفات المشروع مع <TasksProvider> كوحدة جاهزة مكتفية ذاتياً.

الصف 2 صورة توضيحية
الركائز المعمارية الثلاث لدمج دالة المخفض مع سياق قراءة المهام وسياق إرسال الأوامر المستقل
الصف 3 كود برمجي
HTML
export function TasksProvider({ children }) {
  const [tasks, dispatch] = useReducer(reducer, init);
  return (
    <TasksContext.Provider value={tasks}>
      <TasksDispatchContext.Provider value={dispatch}>
        {children}
      </TasksDispatchContext.Provider>
    </TasksContext.Provider>
  );
}
الصف 4 ملاحظة هامة