رویداد ها در React
در این بخش به بررسی رویداد ها در React می پردازیم، React بهعنوان یکی از محبوبترین کتابخانههای جاوااسکریپت برای ساخت رابطهای کاربری، امکانات زیادی را در اختیار توسعهدهندگان قرار میدهد. یکی از این امکانات، رویدادها (Events) است که به ما اجازه میدهد تا به تعاملات کاربر مانند کلیک، تغییر ورودی، حرکت ماوس و غیره پاسخ دهیم. در این مقاله قصد داریم بهصورت جامع به مفهوم رویدادها در React، نحوه استفاده از آنها، تفاوت آنها با رویدادهای سنتی جاوااسکریپت و مثالهایی عملی بپردازیم.
درک صحیح رویدادها در React برای توسعهدهندگان بسیار ضروری است، زیرا بخش بزرگی از تعاملات کاربر با رابط کاربری به کمک آنها مدیریت میشود. رویدادها در React از سیستم SyntheticEvent استفاده میکنند که یک لایه انتزاعی بر روی رویدادهای مرورگر است. این سیستم مزایایی مانند سازگاری با مرورگرهای مختلف و بهبود کارایی را به همراه دارد. در ادامه، به جنبههای مختلف رویدادها در React خواهیم پرداخت.
رویدادها در React: تفاوتها با جاوااسکریپت سنتی
در React، رویدادها از سیستم SyntheticEvent استفاده میکنند که نسخهای سادهشده و سازگار با مرورگرهای مختلف از رویدادهای مرورگر است. این سیستم به توسعهدهندگان اجازه میدهد که بدون نگرانی از تفاوتهای مرورگرها، رویدادها را مدیریت کنند. در React، تفاوتهای زیر با جاوااسکریپت سنتی وجود دارد:
- نحوه تعریف رویدادها
برخلاف جاوااسکریپت سنتی که از نامهای کوچکی مانندonclick
یاonchange
استفاده میکند، در React نامها باید بهصورت CamelCase نوشته شوند، مانندonClick
وonChange
. - استفاده از JSX
در React، باید تابعی بهعنوان مقدار برای ویژگی رویداد تعیین شود، نه یک رشته. برای مثال:
<button onClick={handleClick}>Click Me</button>
- استفاده از SyntheticEvent
رویدادها در React توسط سیستم SyntheticEvent مدیریت میشوند. این سیستم یک لایه انتزاعی است که API سازگار با مرورگرها ارائه میدهد. - اتصال خودکار به عنصر
در جاوااسکریپت سنتی، ممکن است نیاز به استفاده ازaddEventListener
داشته باشید، اما در React، اتصال بهطور خودکار در JSX انجام میشود.
تعریف و مدیریت رویدادها در React
برای تعریف و مدیریت رویدادها در React، باید یک تابع بهعنوان هندلر (Handler) ایجاد کنید و آن را به ویژگی رویداد متصل کنید. به مثال زیر توجه کنید:
مثال: هندلینگ کلیک
توضیح کد
- تابع
handleClick
بهعنوان هندلر تعریف شده است. - این تابع به ویژگی
onClick
دکمه متصل شده است. - هنگامیکه دکمه کلیک شود، پیام “Button clicked!” نمایش داده میشود.
این ساختار باعث سادهتر شدن مدیریت رویدادها در پروژههای React میشود.
ارسال آرگومان به هندلرهای رویداد
گاهی اوقات لازم است آرگومانهایی به هندلر ارسال کنیم. در این حالت میتوان از یک تابع ناشناس یا متد bind
استفاده کرد.
مثال: ارسال آرگومان با تابع ناشناس
توضیح کد
- تابع
handleClick
آرگومانname
را میپذیرد. - تابع ناشناس برای ارسال مقدار
React
به هندلر استفاده شده است.
جلوگیری از رفتار پیشفرض
برای جلوگیری از رفتار پیشفرض عناصر HTML، میتوان از متد preventDefault
استفاده کرد.
مثال: جلوگیری از ارسال فرم
توضیح کد
- تابع
handleSubmit
متدpreventDefault
را فراخوانی میکند. - این متد مانع از ارسال فرم و تازهسازی صفحه میشود.
رویدادهای ترکیبی در React
در بعضی موارد، ممکن است نیاز به مدیریت چندین رویداد داشته باشید. برای این کار میتوانید رویدادها را ترکیب کنید.
مثال: مدیریت چندین رویداد
توضیح کد
- دو هندلر برای رویدادهای
onMouseEnter
وonMouseLeave
تعریف شدهاند. - این رویدادها ورود و خروج ماوس را مدیریت میکنند.
رویدادها در React نقش کلیدی در تعاملات کاربر با رابط کاربری دارند. با استفاده از سیستم SyntheticEvent، توسعهدهندگان میتوانند بهسادگی و با سازگاری بیشتر رویدادها را مدیریت کنند. در این مقاله با مباحثی مانند تفاوتهای رویدادهای React با جاوااسکریپت سنتی، نحوه تعریف هندلرها، ارسال آرگومان به هندلرها، جلوگیری از رفتار پیشفرض و مدیریت رویدادهای ترکیبی آشنا شدیم.
برای اطلاعات بیشتر میتوانید به منابع زیر مراجعه کنید:
- مستندات رسمی React
- React SyntheticEvent API
آیا این مطلب برای شما مفید بود ؟