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

Keys Scope and Props Rule نطاق المفتاح وعدم مروره كخاصية

افهم أهمية خاصية المفتاح الفريد key في مطابقة قوائم React، ولماذا يسبب فهرس المصفوفة أو التوليد العشوائي أخطاء الهوية، وكيف نكتب Fragment المزود بمفتاح.
4 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

تكتمل مهارتك في إدارة المفاتيح بقاعدتين حاسمتين؛ الأولى أن تفرد المفتاح مطلوب بين العناصر الشقيقة داخل القائمة الواحدة فقط ولا يضر تشابه المعرفات بين قائمتين منفصلتين في الصفحة. والثانية أن React تستهلك خاصية key داخلياً ولا تمررها أبداً داخل كائن props؛ فإذا احتاج المكون الابن لقراءة المعرّف، مرره كخاصية صريحة مستقلة مثل ticketId={t.id}. قارن بين مصادر المفاتيح في الجدول التالي:

مصدر المفتاح keyالثبات عبر التصييراتالحكم الهندسي في React
معرّف قاعدة البيانات item.idثابت بنسبة 100% مع الفرز والتصفيةالمعيار القياسي المعتمد لكافة القوائم
معرّف UUID عند إنشاء الكائنثابت طوال عمر السجل في الذاكرةممتاز للبيانات المنشأة محلياً في المتصفح
فهرس المصفوفة indexينزاح فور الإضافة أو الحذف أو الفرزتجنبه في القوائم المتغيرة أو التفاعلية
دالة Math.random() بالعرضيتغير في كل تصيير ويهدم العناصرمحظور تماماً — يدمر الأداء وحالة الحقول
الصف 2 كود برمجي
HTML
function TicketRow({ code, summary }) {
  return <div>#{code}: {summary}</div>;
}
function TicketBoard({ tickets }) {
  return (
    <div className="rx-stack">
      {tickets.map((t) => (
        <TicketRow key={t.id} code={t.id} {...t} />
      ))}
    </div>
  );
}
الصف 3 ملاحظة هامة
الصف 4 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

استوعبت في هذا الدرس كيف تحافظ خاصية key على هوية العناصر أثناء المطابقة، واخترت المعرّفات الثابتة بدلاً من الفهرس المتغير والدوال العشوائية، وكتبت Fragment الصريح المزود بمفتاح، ومررت المعرّف كخاصية مستقلة عند الحاجة لعرضه. الخطوة التالية: انتقل الآن إلى الدرس رقم 15 «نقاء المكونات وتدفق البيانات أحادي الاتجاه» لمواصلة البناء التراكمي المتدرج في مسار React الحديث.