فهرست سرفصل‌های React
خانه (Home) مقدمه (Intro) شروع کار (Get Started) اولین اپ (First App) رندر HTML (Render HTML) ارتقا (Upgrade) آشنایی با ES6 (ES6) کلاس ها در ES6 (ES6 Classes) توابع پیکانی ES6 (ES6 Arrow Functions) متغیرها در ES6 (ES6 Variables) متد map روی آرایه ها (ES6 Array map()) دیس ترکچرینگ (تقسیم ساختاری) (ES6 Destructuring) عملگر پخش (Spread) (ES6 Spread Operator) ماژول ها در ES6 (ES6 Modules) عملگر سه تایی (Ternary) (ES6 Ternary Operator) رشته های قالبی (Template Strings) (ES6 Template Strings) مقدمه JSX (JSX Intro) عبارت ها در JSX (JSX Expressions) خصیصه ها در JSX (JSX Attributes) شرط ها در JSX (JSX If Statements) کامپوننت ها (Components) کلاس ها (Class) پراپس ها (Props) (Props) دیس ترکچرینگ پراپس ها (Props Destructuring) پراپس children (Props Children) رویدادها (Events) رندر شرطی (Conditionals) لیست ها (Lists) فرم ها (Forms) ارسال فرم (Forms Submit) فیلد Textarea (Textarea) فیلد Select (Select) چند ورودی در فرم (Multiple Inputs) چک باکس (Checkbox) دکمه های رادیویی (Radio) پورتال ها (Portals) Suspense (Suspense) استایل دهی با CSS (CSS Styling) CSS Modules (CSS Modules) CSS-in-JS (CSS-in-JS) مسیریابی (Router) (Router) ترنزیشن ها (Transitions) (Transitions) Forward Ref (Forward Ref) کامپوننت های مرتبه بالاتر (HOC) (HOC) استایل دهی با Sass (Sass) هوکس چیست؟ (What is Hooks?) هوک useState (useState) هوک useEffect (useEffect) هوک useContext (useContext) هوک useRef (useRef) هوک useReducer (useReducer) هوک useCallback (useCallback) هوک useMemo (useMemo) هوک های سفارشی (Custom Hooks) کامپایلر (Compiler) کوئیز (آزمون کوتاه) (Quiz) تمرین ها (Exercises) سیلابس (سرفصل دوره) (Syllabus) برنامه مطالعه (Study Plan) سرور (Server) آمادگی مصاحبه (Interview Prep) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
React

React — رویدادها (Events)

آخرین بروزرسانی: 1404/08/24

رویدادها (Events)

در React، رویدادها (Events) یعنی واکنش به کارهای کاربر. مثلاً کلیک، تغییر متن، یا حرکت ماوس. مثل وقتی در بازی دکمه می زنی و شخصیت می پرد.

نوشتن رویدادها در React

در HTML معمولی، رویدادها را با حروف کوچک می نویسی؛ مثل onclick. اما در رویدادهای React باید از camelCase استفاده کنی؛ یعنی حروف ترکیبی مثل onClick.

همچنین، در HTML تابع را داخل رشته (String) می نویسی. اما در React، هندلر رویداد (Event Handler) را داخل آکولاد {} قرار می دهی؛ چون یک مقدار جاوااسکریپتی است.

<button onClick={shoot}>Take the Shot!</button>

مشاهده در ادیتور

<button onclick="shoot()">Take the Shot!</button>

مشاهده در ادیتور

نکته: در رویدادهای React همیشه از onClick، onChange، onMouseOver و شبیه این ها استفاده کن؛ نه نسخه حروف کوچک.

قرار دادن تابع رویداد داخل کامپوننت

به تابعی که هنگام رویداد اجرا می شود، هندلر رویداد (Event Handler) می گویند. بهتر است این تابع را داخل خود کامپوننت تعریف کنی؛ مثل نمونه فوتبال.

function Football() {
  const shoot = () => {
    alert("Great Shot!");
  };

  return (
    <button onClick={shoot}>Take the shot!</button>
  );
}

createRoot(document.getElementById("root")).render(
  <Football />
);

مشاهده در ادیتور

اینجا وقتی کاربر روی دکمه کلیک کند، تابع shoot اجرا می شود. در نتیجه یک alert با متن «Great Shot!» نمایش داده می شود.

گام به گام ساخت یک رویداد ساده

  1. یک کامپوننت مثل Football بساز.
  2. داخل آن، یک تابع هندلر مثل shoot تعریف کن.
  3. یک دکمه در return بگذار و onClick={shoot} بنویس.
  4. کامپوننت را با createRoot(...).render() در صفحه رندر کن.

ارسال آرگومان به هندلر رویداد

گاهی می خواهی هنگام رویداد، یک متن یا عدد خاص هم بفرستی. برای این کار، در رویدادهای React از تابع پیکانی (Arrow Function) استفاده می کنی تا آرگومان را خودت بدهی.

function Football() {
  const shoot = (message) => {
    alert(message);
  };

  return (
    <button onClick={() => shoot("Goal!")} >
      Take the shot!
    </button>
  );
}

createRoot(document.getElementById("root")).render(
  <Football />
);

مشاهده در ادیتور

اینجا کلیک روی دکمه، تابع پیکانی را اجرا می کند. آن تابع، رشته "Goal!" را به shoot می فرستد و پیام نشان داده می شود.

تمرین ارسال آرگومان در رویدادهای React

  1. تابع هندلر را با یک ورودی مثل name تعریف کن.
  2. داخل تابع، نام را در یک alert نمایش بده.
  3. در رویداد onClick از تابع پیکانی استفاده کن.
  4. هنگام کلیک، نام دلخواه را به تابع بفرست.

شیء رویداد در React

هر رویداد در React یک شیء رویداد (Event Object) می سازد. این شیء اطلاعاتی مثل نوع رویداد، هدف کلیک شده و خیلی چیزهای دیگر را نگه می دارد.

می توانی این شیء را خودت به هندلر بفرستی. کافی است در تابع پیکانی، پارامتر event را بگیری و آن را به تابع اصلی بدهی.

function Football() {
  const shoot = (message, event) => {
    alert(event.type);
    /*
    event نماینده رویدادی است که تابع را اجرا کرده است.
    در این مثال، نوع رویداد 'click' خواهد بود.
    */
  };

  return (
    <button onClick={(event) => shoot("Goal!", event)}>
      Take the shot!
    </button>
  );
}

createRoot(document.getElementById("root")).render(
  <Football />
);

مشاهده در ادیتور

در این مثال، event.type برابر "click" است. این کار در فرم ها و ورودی ها خیلی کاربردی می شود.

در فصل فرم ها می توانی ببینی چطور از شیء رویداد برای خواندن مقدار فیلدها استفاده می شود. آنجا رویدادهایی مثل onChange و onSubmit مهم هستند.

جمع بندی سریع رویدادها (Events)

  • رویدادهای React شبیه رویدادهای HTML هستند، اما با camelCase.
  • هندلر رویداد را داخل آکولاد مثل onClick={shoot} می نویسی.
  • برای ارسال آرگومان در رویدادهای React از تابع پیکانی استفاده کن.
  • شیء رویداد اطلاعاتی مثل نوع رویداد را در خود دارد.
  • برای مرور دوباره رویدادهای React همیشه می توانی به همین صفحه برگردی.