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

Resetting State with key Prop تصفير حالة المكون بخاصية key

زامن المكونات الشقيقة برفع الحالة المشتركة إلى الأب الأقرب، وافهم كيف تربط React بقاء الحالة بموقع المكون في الشجرة ومتى تصفرها عمداً عبر خاصية key.
4 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

أحياناً يشغل المكون نفس الموضع والنوع في الشجرة لكنه يمثل كياناً مختلفاً منطقياً، مثل صندوق كتابة محادثة <ChatComposer /> عند التبديل من مراسلة «سارة» إلى «عمر». افتراضياً تحتفظ React بنص المسودة المكتوب مما قد يوقع المستخدم في خطأ إرسال الرسالة للشخص الخطأ!

مرر خاصية key={selectedUser.id} لإبلاغ React بأن صندوق كل مستلم يمثل هوية مستقلة؛ فبمجرد تغير المفتاح تحذف المكتبة النسخة السابقة وتنشئ نسخة نظيفة بحالة ابتدائية فارغة:

سيناريو شجرة الواجهةسلوك المطابقة في Reactمصير حالة المكون
نفس نوع المكون في نفس الموضعتحديث خصائص النسخة القائمة نفسهاتبقى الحالة محفوظة كما هي
تغير نوع العنصر أو إزالتهإزالة الفرع القديم وبناء فرع جديدتُمسح الحالة القديمة بالكامل
تغير قيمة خاصية المفتاح keyالتعامل معه كهوية مكون جديدة مستقلةتصفير الحالة تلقائياً للقيم الابتدائية
رفع الحالة للأب المشترك الأقربتمرير القيمة ودالة التحديث عبر الخصائصتزامن تام ولحظي بين المكونات الشقيقة
الصف 2 كود برمجي
HTML
function Messenger() {
  const [to, setTo] = useState(CONTACTS[0]);
  return (
    <div>
      <ContactList list={CONTACTS} onSelect={setTo} />
      <ChatBox key={to.id} contact={to} />
    </div>
  );
}
الصف 3 ملاحظة هامة
الصف 4 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

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