التعامل مع الأحداث (Handling Events) وتمرير المعاملات في React
| المفهوم الهندسي | الآلية البرمجية في React | النتيجة |
|---|---|---|
| الأحداث التجميعية SyntheticEvents | تغليف أحداث المتصفح الأصلية في غلاف موحد يعمل بنفس السلوك على جميع المتصفحات | ضمان استقرار المزايا التفاعلية في منصة نوفيل بغض النظر عن متصفح المستخدم |
| التسمية بصيغة CamelCase | كتابة اسم الحدث مثل onClick و onChange بدلاً من onclick العادية | التوافق الصارم مع معايير كتابة JSX داخل ريأكت |
| إرسال مرجع الدالة Function Reference | تمرير اسم الدالة بدون أقواس لضمان انتظار الحدث | منع تنفيذ الدالة تلقائياً أثناء رندرة الواجهة |
| تمرير المعاملات للحدث | استخدام دالة سهمية مجهولة | تمكين المطور من تمرير معرفات العناصر أو بيانات مخصصة مع الحدث بأمان تام |
في جافا سكريبت التقليدية (Vanilla JS)، كنا نربط الأحداث بالـ DOM عبر addEventListener أو نكتب onclick="handleClick()" في HTML.
في React، تختلف الآلية تماماً لضمان سرعة الأداء والتوافق المطلق بين المتصفحات المختلفة. تتعامل ريأكت مع الأحداث من خلال كائن ذكي يُسمى SyntheticEvent (الحدث التجميعي)، وهو غلاف موحد يغلف حدث المتصفح الأصلي ويعمل بنفس الطريقة بدقة على جميع المتصفحات.
هناك قاعدتان صارمتان يجب مراعاتهما عند التعامل مع الأحداث داخل JSX:
في كثير من الأحيان، تحتاج لتمرير بيانات خاصة مع الحدث (مثل id الكورس المرادذ حذفه أو تعديله). لتمرير معامل دون تنفيذ الدالة فوراً أثناء الرندرة، نستخدم دالة سهمية غلافية (Arrow Function) احتضان للحدث: