الأحداث المصطنعة (Synthetic Events)
These docs are old and won’t be updated. Go to react.dev for the new React docs.
These new documentation pages teach modern React and include live examples:
يوثّق هذا الدليل مُغلِّف الأحداث المصطنعة SyntheticEvent والذي يُشكِّل جزءًا من نظام أحداث React. انظر توثيق معالجة الأحداث لتعلّم المزيد.
لمحة عامة
ستُمرِّر مُعالجات الأحداث لديك نُسخًا من SyntheticEvent, وهو عبارة عن تغليف للأحداث متوافق عبر المتصفحات لأجل نظام الأحداث الأصلي في المتصفّح، حيث يمتلك نفس الواجهة بما في ذلك stopPropagation() و preventDefault(), فيما عدا أنّ هذه الأحداث تعمل عبر جميع المتصفحات.
إن وجدت أنّك تحتاج حدث المتصفح الأصلي فاستخدم ببساطة الخاصيّة nativeEvent للحصول عليه. تختلف الأحداث التركيبية عن الأحداث الأصلية للمتصفح ولا ترتبط بها مباشرة. على سبيل المثال في onMouseLeave event.nativeEvent سيشير إلى حدث mouseout. التعيين المحدد ليس جزءًا من واجهة برمجة التطبيقات العامة وقد يتغير في أي وقت. يمتلك كل كائن SyntheticEvent الخاصيّات التالية:
boolean bubbles
boolean cancelable
DOMEventTarget currentTarget
boolean defaultPrevented
number eventPhase
boolean isTrusted
DOMEvent nativeEvent
void preventDefault()
boolean isDefaultPrevented()
void stopPropagation()
boolean isPropagationStopped()
void persist()
DOMEventTarget target
number timeStamp
string typeملاحظة:
اعتبارًا من الإصدار 17,
e.persist()لا تفعل أي شيء لأنSyntheticEventلم تعد مجمعة.
ملاحظة:
بدءًا من الإصدار v0.14 لن تؤدي إعادة
falseمن مُعالِج الحدث إلى إيقاف انتشار الحدث، بل يجب إطلاق ذلك يدويًّا عن طريق التابعe.stopPropagation() أوe.preventDefault() بحسب ما هو ملائم.
الأحداث المدعومة
تُوحِّد React الأحداث بحيث تمتلك خاصيّات متوافقة عبر المتصفحات المختلفة.
تُطلَق معالجات الأحداث التالية عن طريق حدث في طور مضاعفة الأحداث. لتسجيل مُعالِج حدث لأجل طور الالتقاط أضف Capture إلى اسم الحدث. على سبيل المثال بدلًا من كتابة onClick تستخدم onClickCapture للتعامل مع حدث الضغط في طور الالتقاط.