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

How React Compares Dependencies مقارنة الاعتماديات عبر Object.is

أتقن استخدام خطاف useEffect لمزامنة مكونات React مع الأنظمة الخارجية بعد رسم الشاشة، وتحديد مصفوفة الاعتماديات بدقة، ومنع حلقات التصيير اللانهائية.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

تقارن React كل عنصر في مصفوفة الاعتماديات بقيمته في التصيير السابق عبر خوارزمية Object.is(prevDep, nextDep). تتطابق النصوص والأرقام والقيم المنطقية بتساوي قيمها، أما إنشاء كائن جديد { roomId } أو مصفوفة جديدة مباشرة أثناء جسم التصيير فينتج عنوان ذاكرة مختلفاً في كل مرة فيعيد تشغيل التأثير بلا مبرر!

لضمان استقرار الاعتماديات، أنشئ كائنات الإعداد داخل دالة useEffect نفسها واعتمد في المصفوفة على القيم الأولية المباشرة مثل [serverUrl, roomId]، أو ارفع الثوابت الساكنة خارج المكون. يلخص الجدول التالي القواعد الكاملة:

نمط مصفوفة الاعتمادياتتوقيت تشغيل التأثيرالحالة الهندسية المناسبة
قيم أولية مثل [roomId, theme]عند التركيب وعند تغير أي من القيمتين فقطمزامنة عنوان الصفحة أو القناة أو التخزين المحلي
مصفوفة فارغة []مرة واحدة بعد رسم التركيب الأولي للمكونتهيئة أداة خارجية لا تقرأ أي حالة أو خاصية
بدون تمرير مصفوفة ثانيةعقب كل تصيير يمر به المكون بلا استثناءتشخيص نادر؛ خطر جداً إذا استُدعيت داخله setState
كائن منشأ بالعرض [{ id }]في كل تصيير لأن المرجع الجديد يختلف بالذاكرةنمط خاطئ — أنشئ الكائن داخل التأثير واعتمد على [id]
الصف 2 ملاحظة هامة
الصف 3 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

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