React ES6 Classes
🔹 React ES6 Classes (کلاسها در React)
در این درس یاد میگیری چطور از کلاسها در ES6 برای ساخت کامپوننتهای React استفاده میشه، تفاوتش با کامپوننتهای تابعی چیه، و چه زمانی هنوز ممکنه بهش نیاز پیدا کنی.
🔸 کلاس (Class) در ES6 چیست؟
کلاسها در ES6 راهی سادهتر و خواناتر برای ساخت اشیای مبتنی بر prototype هستن.
🔹 مثال ساده:
📌 ()constructor
تابعیست که هنگام ساخت شیء از کلاس اجرا میشه.
🔸 کلاسها در React
قبل از معرفی Hooks در React (نسخه 16.8)، تمام کامپوننتهای پیچیده با کلاسها ساخته میشدن.
🔹 مثال یک کامپوننت کلاسی:
📌 اینجا:
-
Welcome
یک کلاس React است. -
از
React.Component
ارثبری کرده. -
متد
()render
همیشه باید JSX برگردونه.
🔸 استفاده در App.js
📌 خروجی:
🔸 State در کامپوننت کلاسی
کلاسها میتونن state داخلی داشته باشن (برخلاف تابعها در نسخههای قدیمی).
📌 خروجی:
وقتی روی دکمه کلیک میکنی، عدد افزایش پیدا میکنه 🎯
🔸 رویدادها در کلاسها
برای اینکه this
درست عمل کنه، معمولاً از Arrow Function استفاده میکنیم تا بایند بشه:
و در JSX:
🔸 متدهای چرخهی حیات (Lifecycle Methods)
کامپوننتهای کلاسی از متدهایی استفاده میکنن که در زمانهای مختلف از چرخه حیات کامپوننت اجرا میشن.
مثلاً:
📌 در کامپوننتهای تابعی، معادل این متدها با useEffect() پیادهسازی میشه.
🔸 Props در کلاسها
مقدار props از this.props
گرفته میشه:
🔸 مقایسه کامپوننت تابعی و کلاسی
ویژگی | Class Component | Function Component |
---|---|---|
نحوه تعریف | با class و extends React.Component | با function یا const |
state | با this.state و ()this.setState | با ()useState |
lifecycle | با متدهای خاص (componentDidMount و ...) | با ()useEffect |
this | نیاز به بایند دارد | ندارد |
عملکرد | کمی سنگینتر | سبکتر و سریعتر |
استفاده امروزی | کمتر رایج | روش اصلی و توصیهشده |
🔸 زمانی که هنوز از کلاس استفاده میشه
هرچند امروز بیشتر از کامپوننتهای تابعی استفاده میشه، اما کلاسها هنوز کاربرد دارن در:
-
پروژههای قدیمی React
-
بعضی کتابخانهها که فقط از کلاس پشتیبانی میکنن
-
موقع مطالعه یا درک مفاهیم قدیمیتر React
✅ خلاصه
مفهوم | توضیح |
---|---|
تعریف کلاس | با class MyComponent extends React.Component |
متد ()render | تنها متد اجباری در کلاس |
state | با this.state و ()this.setState |
props | با this.props |
lifecycle | شامل متدهایی مثل ()componentDidMount |
جایگزین مدرن | کامپوننتهای تابعی + Hooks |
✅ نتیجه:
در این درس یاد گرفتی چطور با کلاسها در React کار کنی، state و props رو مدیریت کنی، رویدادها رو کنترل کنی و چرخهی حیات کامپوننت رو درک کنی.
هرچند امروز بیشتر از تابعها و هوکها استفاده میشه، اما دونستن کلاسها هنوز ضروریه.