نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
REA

منهج React Js

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج React Js/Handling Events

Handling Events

شرح الأحداث في ريأكتHandling Events in Reactكورس React كاملالتفاعلية في ريأكتالأحداث التجميعية SyntheticEvent

جدول مرجعي سريع

1

التعامل مع الأحداث (Handling Events) وتمرير المعاملات في React

المفهوم الهندسيالآلية البرمجية في Reactالنتيجة
الأحداث التجميعية SyntheticEventsتغليف أحداث المتصفح الأصلية في غلاف موحد يعمل بنفس السلوك على جميع المتصفحاتضمان استقرار المزايا التفاعلية في منصة نوفيل بغض النظر عن متصفح المستخدم
التسمية بصيغة CamelCaseكتابة اسم الحدث مثل onClick و onChange بدلاً من onclick العاديةالتوافق الصارم مع معايير كتابة JSX داخل ريأكت
إرسال مرجع الدالة Function Referenceتمرير اسم الدالة بدون أقواس لضمان انتظار الحدثمنع تنفيذ الدالة تلقائياً أثناء رندرة الواجهة
تمرير المعاملات للحدثاستخدام دالة سهمية مجهولةتمكين المطور من تمرير معرفات العناصر أو بيانات مخصصة مع الحدث بأمان تام

الشرح

في جافا سكريبت التقليدية (Vanilla JS)، كنا نربط الأحداث بالـ DOM عبر addEventListener أو نكتب onclick="handleClick()" في HTML.

في React، تختلف الآلية تماماً لضمان سرعة الأداء والتوافق المطلق بين المتصفحات المختلفة. تتعامل ريأكت مع الأحداث من خلال كائن ذكي يُسمى SyntheticEvent (الحدث التجميعي)، وهو غلاف موحد يغلف حدث المتصفح الأصلي ويعمل بنفس الطريقة بدقة على جميع المتصفحات.

1. الفروق الجوهرية لربط الأحداث في React

هناك قاعدتان صارمتان يجب مراعاتهما عند التعامل مع الأحداث داخل JSX:

  1. صيغة CamelCase: تُكتب أسماء الأحداث بصيغة الجمل، مثل onClick بدلاً من onclick و onChange بدلاً من onchange.
  2. تمرير مرجع الدالة (Function Reference): نمرر اسم الدالة بدون أقواس تنفيذ داخل الأقواس المجعدة {}.
  • onClick={handleClick} : صحيح (نمرر مرجع الدالة لتنتظر النقر).
  • onClick={handleClick()} : خاطئ (سيؤدي لتنفيذ الدالة فوراً أثناء رندرة المكون!).

2. تمرير المعاملات (Arguments) إلى الأحداث

في كثير من الأحيان، تحتاج لتمرير بيانات خاصة مع الحدث (مثل id الكورس المرادذ حذفه أو تعديله). لتمرير معامل دون تنفيذ الدالة فوراً أثناء الرندرة، نستخدم دالة سهمية غلافية (Arrow Function) احتضان للحدث:

نصائح احترافية

  • —عندما نكتب دالة سهمية داخل وسم JSX هكذا: onClick={() => handleEnroll(id)}، تقوم ريأكت بإنشاء نسخة جديدة تماماً من هذه الدالة في كل مرة يُعاد فيها رندرة المكون.
  • —في التطبيقات الصغيرة، لا يسبب هذا أي مشكلة ملموسة. ولكن إذا كانت لديك قائمة ضخمة تحتوي على ألف عنصر (1000 Items)، فإن إنشاء 1000 دالة جديدة مع كل رندرة يستهلك ذاكرة المتصفح ويثقل الأداء!
  • —الحل الاحترافي للمشاريع الضخمة:
  • —قم بإنشاء مكون فرعي مستقِل للعنصر (CourseItem) ومرر إليه الدالة الرئيسية مع المعرف كـ props، واجعل المكون الفرعي ينادي الدالة الداخلية بسهولة دون الحاجة لكتابة دوال سهمية مضمنة داخل الـ Loop!

الدرس السابق

Conditional Rendering

الدرس التالي

إدارة الحالة والتعرف على هوك useState

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر