useEffect والتأثيرات الجانبية في React ومشروع ختامي متكامل
الدرس الأخير في دورة React: متى تستخدم useEffect، ومصفوفة الاعتماديات، والتنظيف، والمؤقتات، والأخطاء الشائعة، ثم الخطوات التالية: Vite وNext.js وبناء مشروعك الأول.
محتويات الدرس
التأثير الجانبي أي شيء يحدث خارج رسم الواجهة: مؤقت، طلب من خادم، تغيير عنوان الصفحة، حفظ في المتصفح. لهذه الأشياء نستخدم useEffect.
الشكل العام
useEffect(() => {
// الكود الذي يعمل بعد العرض
return () => {
// التنظيف (اختياري)
};
}, [اعتماديات]);| الاعتماديات | متى يعمل؟ |
|---|---|
| بدون مصفوفة | بعد كل عرض |
[] |
مرة واحدة عند الظهور |
[q] |
عند الظهور وكلما تغيرت q |
ساعة حية مع تنظيف
اضغط «تشغيل» لترى النتيجة هنا.
أخفِ الساعة وراقب وحدة التحكم: دالة التنظيف تمنع تسرب المؤقتات.
التأثير المرتبط بقيمة
اضغط «تشغيل» لترى النتيجة هنا.
خطأ شائع: الحلقة اللانهائية
إذا غيّرت داخل useEffect حالة موجودة في اعتمادياته دون شرط، فسيعمل التأثير بلا توقف. اسأل نفسك دائمًا: هل أحتاج تأثيرًا أصلًا؟ القيم المحسوبة من الحالة (مثل list أعلاه) لا تحتاج useEffect.
الخطوات التالية بعد هذه الدورة
- مشروع حقيقي:
npm create vite@latestثم اختر React. تحتاج Node.js مثبتًا. - التوجيه بين الصفحات: React Router.
- إطار كامل: Next.js للمواقع التي تهمها سرعة التحميل والسيو.
- الطلبات من الخادم:
fetchداخل useEffect، أو مكتبة مثل TanStack Query.
المشروع الختامي
في ملعب React ابنِ «محوّل عملات» صغيرًا:
- حقل للمبلغ وقائمة للعملة.
- النتيجة تُحسب مباشرة عند الكتابة.
- سجّل في وحدة التحكم كل تغيير للعملة باستخدام useEffect مع الاعتمادية المناسبة.
- نزّل المشروع ملف HTML جاهزًا، ثم أجب عن اختبار الدورة.