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ها استفاده میشه.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React