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

السؤال

نشر

عندما بدأت بتعلم React سمعت عن مكتبة Redux وأنه يمكن إستعمالها لإدارة الحالة State Management ولكن لم أفهم الفرق بينها وبين  Context API خصوصًا أن هذا الأخير موجود مسبقًا في React ولا يحتاج إلى تثبيت وسهل التعلم.

لذلك كنت أتسأل عن الفرق بين Redux  و Context API في React؟ ومتى أستعمل كلًا منهما؟

Recommended Posts

  • 1
نشر

يمكن اعتبار Redux كمخزن مركزي لحالة التطبيق، يتم إرسال الأحداث إليه من كل المكونات مع تفاصيل عن تلك الأحداث، ويتم التحقق من تلك الأحداث وتحديث الحالة ضمن المخزن بناءًا على شروط موضوعة ضمن reducers، مكتبة Redux كانت موجودة لتحل مشكلة مركزية الحالة قبل وجود Context API، لكن بعد إطلاق تلك الميزة في React أصبح من السهل التعامل مع مشاركة الحالة لعدد من المكونات المتباعدة ضمن شجرة مكونات التطبيق دون الحاجة لمكتبات مثل Redux، 

يتميز Redux باستخدام reducers لتحديث حالة المخزن وهي توابع تتلقى الأحداث وتغير حالة قسم من بيانات المخزن، لكن يمكن تطبيق نفس الفكرة باستخدام Context API مع الخطاف useReducer.

مزايا كل من الطريقتين:

  • Context API: يأتي مسبقًا مع رياكت ولا يحتاج إلى إعداد، ممتاز للبيانات الثابتة مثل حالة الواجهة أو بيانات سيتم تحديثها محليًا فقط.
  • Redux: يحتاج لتثبيت مكتبته وإعدادها، ويحتاج إلى الكثير من الكتابة المتكررة أغلب الوقت لتنفيذ نفس الوظيفة، ويمكن بسهولة إعداده ليتعامل مع البيانات الديناميكية أثناء معالجة حالة التطبيق (كجلب بيانات من خادم نظام خلفي)، ويتوفر له أدوات مطور قوية تساعد حلى تعقب وحل المشاكل بسهولة.

في حال كانت الحالة ضمن تطبيقك معقدة ومترابطة بين عدة مكونات وأقسام وتحتاج لمعالجة بيانات ديناميكية تدخل في حساب حالة التطبيق، استخدم Redux، عدا ذلك Context API أسهل وأبسط.

يمكنك الاستفادة من قراءة المقالات التالية:

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...