React ES6 Arrow Functions
🔹 React ES6 Arrow Functions (توابع فلش در React)
در این درس یاد میگیری Arrow Function یا همون تابع فلش چیه، چطور کار میکنه، و چرا در React خیلی کاربرد داره مخصوصاً برای تعریف کامپوننتها و هندل کردن eventها.
🔸 معرفی Arrow Function
تابع فلش در ES6 راهی کوتاهتر و مدرنتر برای نوشتن تابعهاست.
🔹 مثال ساده:
📌 خروجی هر دو یکیه، اما نسخه دوم کوتاهتر و تمیزتره.
🔸 استفاده از Arrow Function در React
در React، توابع فلش بیشتر برای:
-
تعریف کامپوننتهای تابعی
-
تعریف رویدادها (event handlers)
استفاده میشن.
🔹 مثال ۱: کامپوننت تابعی ساده
📌 هر دو کاملاً برابرند — فقط تابع فلش سادهتره و this
در اون رفتار بهتری داره.
🔹 مثال ۲: ارسال props
یا حتی کوتاهتر 👇
📌 استفاده از destructuring باعث خواناتر شدن کد میشه.
🔹 مثال ۳: تابع فلش برای Event Handler
تابع فلش در کنترل رویدادها بسیار مفیده، چون بهصورت خودکار this
رو bind میکنه.
📌 در اینجا نیازی به this
یا bind
نداریم، چون Arrow Function خودش محیط lexical رو نگه میداره.
🔹 مثال ۴: استفاده در ()map
📌 هر num
در حلقه با تابع فلش چاپ میشه.
🔹 مثال ۵: مقایسه با تابع معمولی در کلاس
در کامپوننتهای کلاسی باید دستی bind
میکردیم:
ولی با تابع فلش:
📌 حالا this
همیشه درست کار میکنه ✅
🔹 سینتکس کوتاهتر
وقتی فقط یک دستور return داری، میتونی آکولاد و return رو حذف کنی:
📌 معادل:
✅ نکتهها
مورد | توضیح |
---|---|
this در Arrow Function | بهصورت خودکار از محیط بالاتر گرفته میشه (bind لازم نداره) |
کد کوتاهتر | باعث تمیزی و خوانایی کد میشه |
در React | برای تعریف کامپوننتها و رویدادها عالیه |
در کلاسها | برای جلوگیری از خطای this مفیده |
در map/filter/reduce | معمولاً استفاده میشه |
✅ خلاصه
مفهوم | مثال | توضیح |
---|---|---|
تعریف ساده | const sayHi = () => "Hi!" | تابع کوتاه بدون return |
با پارامتر | const sum = (a, b) => a + b | جمع دو عدد |
چند خطی | { return ... } | وقتی دستور بیش از یکی باشه |
در React | const App = () => <div>Hello</div> | کامپوننت تابعی |
در Event | <button onClick={() => doSomething()}> | هندلر inline |
✅ نتیجه:
توابع فلش باعث میشن کدهای React تمیزتر، کوتاهتر و قابل فهمتر بشن.
از اونها هم برای تعریف کامپوننت و هم برای مدیریت state و eventها استفاده میشه.