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

Mutable Traps vs Pure Updates مقارنة التعديل المباشر والنقي

تعلّم لماذا يفشل التعديل المباشر لكائنات الحالة مع فحص Object.is في React، وكيف تنشئ نسخاً محدثة بمعامل الانتشار والمفاتيح المحسوبة والكائنات المتداخلة.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

قبل الانتقال إلى مصفوفات الحالة في الدرس القادم، راجع المقارنة الشاملة بين أنماط التعديل المباشر المحظورة والبدائل النقية المعتمدة لتحديث الكائنات في React:

العملية المطلوبةالتعديل المباشر المحظورالتحديث النقي المعتمد في React
تعديل خاصية سطحيةuser.city = "Giza"; setUser(user)setUser({ ...user, city: "Giza" })
تحديث حقل بمفتاح ديناميكيform[name] = val; setForm(form)setForm({ ...form, [name]: val })
تعديل خاصية داخل كائن فرعيu.prefs.dark = true; setU({ ...u })setU({ ...u, prefs: { ...u.prefs, dark: true } })
حذف خاصية من كائن الحالةdelete cfg.temp; setCfg(cfg)const { temp, ...rest } = cfg; setCfg(rest)
الصف 2 ملاحظة هامة
الصف 3 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

تعلمت في هذا الدرس سبب اعتماد React على مقارنة مراجع الكائنات بـ Object.is، واستبدلت التعديل المباشر بالنسخ السطحي عبر معامل الانتشار والمفاتيح المحسوبة وتحديث الكائنات المتداخلة بنقاء تام. الخطوة التالية: انتقل الآن إلى الدرس رقم 21 «تحديث المصفوفات في الحالة بطرق غير مغيرة» لمواصلة البناء التراكمي المتدرج في مسار React الحديث.