React Academy · درس

أنماط التواصل بين المكوّنات الشقيقة

نسّقوا بين مكوّنين شقيقين عبر حالة الأب المشتركة وprops الخاصة بدوال الاستدعاء

الدرس 3 من 413 خطوة

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

مرحبًا

في هذا الدرس ستنفّذ التواصل بين المكوّنات الشقيقة في React من خلال تنسيق مكوّنين باستخدام حالة مشتركة في المكوّن الأب وخصائص دوال الاستدعاء.

لا يمكن للمكوّنات الشقيقة التواصل مباشرةً

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

النمط: الحالة المشتركة في المكوّن الأب

يحتفظ المكوّن الأب بالقيمة المشتركة في الحالة ويمرّرها إلى المكوّنين الشقيقين: يتلقى أحدهما القيمة باعتبارها بيانات (القارئ)، بينما يتلقى الآخر دالة استدعاء لتغييرها (الكاتب).
function Parent() {
  const [selected, setSelected] = useState(null);
  return (
    <>
      <Picker onSelect={setSelected} />
      <Detail item={selected} />
    </>
  );
}

المكوّنان الشقيقان القارئ والكاتب

يستدعي المكوّن الشقيق الكاتب (Picker) دالة الاستدعاء الموجودة في المكوّن الأب عندما يجري المستخدم اختيارًا. ويتلقى المكوّن الشقيق القارئ (Detail) القيمة الناتجة باعتبارها خاصية. ولا يعرف أيٌّ من المكوّنين شيئًا عن الآخر.
function Picker({ onSelect }) {
  return <button onClick={() => onSelect('item-1')}>Pick item 1</button>;
}

function Detail({ item }) {
  return <p>Selected: {item}</p>;
}

التواصل في الاتجاهين

يمكن أن يكون كلا المكوّنين الشقيقين قارئًا وكاتبًا في الوقت نفسه. ويتلقى كل منهما القيمة الحالية ودالة استدعاء `onChange`. وتحدّث التغييرات الصادرة من أيٍّ منهما حالة المكوّن الأب المشتركة، ثم تتدفق القيمة المحدّثة إلى كليهما.

مثال على حقول نموذج متزامنة

يتحكّم شريط تمرير وحقل إدخال رقمي في القيمة نفسها. ويتلقى كلاهما القيمة و`onChange` من المكوّن الأب. ويؤدي تغيير أيٍّ من المكوّنين إلى تحديث الآخر تلقائيًا.
function VolumeControl() {
  const [vol, setVol] = useState(50);
  return (
    <>
      <input type="range" value={vol} onChange={e => setVol(+e.target.value)} />
      <input type="number" value={vol} onChange={e => setVol(+e.target.value)} />
    </>
  );
}

تجنّب النمط المضاد لناقل الأحداث

تجنّب استخدام باعث أحداث عام (EventEmitter/PubSub) للتواصل بين المكوّنات الشقيقة في React. فهذا يتجاوز تدفق بيانات React، مما يجعل الحالة غير مرئية ويصعّب تصحيح الأخطاء.

عندما تكون المكوّنات الشقيقة متباعدة

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

الحفاظ على استقلالية المكوّنات الشقيقة

ينبغي ألا يستورد أيٌّ من المكوّنـين الشقيقين الآخر أو يشير إليه. فالمكوّن الأب هو المنسّق. ويجعل هذا الفصل من السهل استبدال أحد المكوّنين دون التأثير في الآخر.

اختبار التواصل بين المكوّنات الشقيقة

اختبر المكوّن الأب: حاكِ إجراءً في المكوّن الشقيق الكاتب (عبر واجهة المكوّن الأب)، ثم تحقّق من أن المكوّن الشقيق القارئ يعرض القيمة الصحيحة. فالمكوّن الأب هو وحدة التنسيق القابلة للاختبار.

تحقّق سريعًا

كيف يتواصل مكوّنان شقيقان في React مع أحدهما الآخر؟

مراجعة

نسّق بين المكوّنات الشقيقة عبر المكوّن الأب المشترك: يحتفظ المكوّن الأب بالحالة المشتركة، ويمرّر البيانات إلى القارئين، ويمرّر دوال الاستدعاء إلى الكاتبين. ولا يحتاج أيٌّ من المكوّنين الشقيقين إلى معرفة الآخر.

التالي

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

تعلم React مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
88
الدروس
324

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

هل درس «أنماط التواصل بين المكوّنات الشقيقة» مجاني؟

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

ماذا ستتعلم في «أنماط التواصل بين المكوّنات الشقيقة»؟

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

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

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

كم من الوقت يستغرق درس «أنماط التواصل بين المكوّنات الشقيقة»؟

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

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

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

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

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