0Pricing
React Academy · درس

اختيار الموقع المناسب للحالة

طبّقوا إطارًا لاتخاذ القرار: حالة محلية أم مرفوعة أم عامة

اختيار الموقع المناسب للحالة درس مجاني في React Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحبًا

في هذا الدرس ستتعلّم إطارًا عمليًا لتحديد ما إذا كان ينبغي أن تكون الحالة في مكوّن واحد، أو في سلف مشترك، أو في React Context، أو في مكتبة عامة لإدارة الحالة.

الخطوة 1: من يستخدم هذه الحالة؟

اسأل أولًا: ما المكوّنات التي تعرض واجهتها باستخدام هذه الحالة؟ دوّنها. إذا كان مكوّن واحد فقط يستخدمها، فأبقِ الحالة محلية في ذلك المكوّن.

الحالة المحلية

تعيش الحالة التي يستخدمها مكوّن واحد بالضبط في ذلك المكوّن باستخدام useState. ومن أمثلتها: ما إذا كانت قائمة منسدلة مفتوحة، والقيمة الحالية لحقل إدخال مُدار، وما إذا كانت تلميحة ظاهرة.
function Toggle() {
  const [on, setOn] = useState(false);
  return <button onClick={() => setOn(!on)}>{on ? 'On' : 'Off'}</button>;
}

الخطوة 2: اعثر على السلف المشترك

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

الحالة المرفوعة (مستويان إلى 3 مستويات)

تُعدّ الحالة المشتركة بين مكوّنين أو ثلاثة مكوّنات في مستوى التداخل نفسه مرشّحًا جيدًا للرفع. ويمتلكها المكوّن الأب المشترك ويمرّرها إلى الأسفل عبر الخصائص.

الخطوة 3: هل أصبح تمرير الخصائص عميقًا أكثر من اللازم؟

إذا كان السلف المشترك يعلو المستهلكين بأربعة مستويات أو أكثر، فإن تمرير الخصائص عبر المكوّنات الوسيطة يسبب ضوضاء في الشيفرة. فكّر في استخدام Context.

حالة Context

استخدم Context للموضوعات المشتركة التي تحتاج إليها مكوّنات كثيرة عبر الشجرة، مثل المستخدم المصادق عليه حاليًا، والسمة النشطة، واللغة المحلية المحددة. ونادرًا ما تتغير هذه القيم، مع وجود مستهلكين كثيرين لها.

الخطوة 4: هل الحالة معقّدة أو مشتركة بين الصفحات؟

إذا كانت للحالة منطقية تحديث معقّدة، أو كانت تحتاج إلى التراجع والإعادة، أو يجب أن تستمر عبر التنقل، أو يتم الوصول إليها من أشجار مكوّنات منفصلة تمامًا، فاستخدم مكتبة مخصصة لإدارة الحالة (Zustand أو Redux).

حالة الخادم مختلفة

البيانات التي يجلبها الخادم هي *حالة خادم* وليست حالة واجهة المستخدم. لا تخزّنها في useState أو في مخزن عام، بل استخدم React Query أو SWR أو RTK Query، إذ تتولى هذه الأدوات التخزين المؤقت وإعادة الجلب وحالات الأخطاء تلقائيًا.

المخطط الانسيابي لاتخاذ القرار

مستهلك واحد ← useState محلي. مستهلكان إلى 3 مستهلكين في عمق متقارب ← ارفع الحالة إلى المكوّن الأب. تمرير عبر 4 مستويات أو أكثر ← Context. منطق معقّد أو امتداد عبر أشجار مختلفة ← Zustand أو Redux. بيانات الخادم ← React Query أو SWR.

تحقّق سريعًا

ما المكان الأنسب لحالة المستخدم المصادق عليه حاليًا، والتي تحتاج مكوّنات كثيرة في تطبيق كبير إلى الوصول إليها؟

مراجعة

طابق مكان الحالة مع المستهلكين: محليًا لمستهلك واحد، ومرفوعة لعدد قليل من المستهلكين القريبين، وفي Context لعدد كبير عبر مستويات متعددة، وفي مكتبة لإدارة الحالة للحالات المعقّدة أو الممتدة عبر أشجار مختلفة، وفي React Query لبيانات الخادم.

اكتمل المقرر

تهانينا! لقد أنهيتم **رفع الحالة إلى الأعلى وحلول تمرير الخصائص**. أصبح لديكم الآن إطار واضح لتحديد مكان الحالة وكيفية مشاركتها بالطريقة الصحيحة.

الأسئلة الشائعة

هل درس «اختيار الموقع المناسب للحالة» مجاني؟

نعم — نص درس «اختيار الموقع المناسب للحالة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «اختيار الموقع المناسب للحالة»؟

طبّقوا إطارًا لاتخاذ القرار: حالة محلية أم مرفوعة أم عامة تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «اختيار الموقع المناسب للحالة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. رفع الحالة إلى الأعلى: المبادئ والأمثلة
  2. تمرير Props عبر مستويات متعددة: متى يسبب مشكلة ومتى يكون مناسبًا
  3. أنماط التواصل بين المكوّنات الشقيقة
  4. اختيار الموقع المناسب للحالة
← العودة إلى React Academy