کامپوننت در React چیست؟ آشنایی با اجزای سازنده برنامه، انواع کامپوننتهای Functional و Class و مزایای استفاده از آنها در توسعه وب
کامپوننتهای React یا همان اجزای سازنده (Building Blocks)، قلب و روح کتابخانه ریاکت هستند. در واقع هر برنامه React از مجموعهای از کامپوننتها ساخته میشود که هر کدام مسئولیت نمایش یک بخش خاص از رابط کاربری (UI) را بر عهده دارند. کامپوننتها به شما امکان میدهند تا کد خود را به قطعات کوچک، مستقل و قابل مدیریت تقسیم کنید.
یک کامپوننت در React، در واقع یک تابع (Function) یا کلاس (Class) جاوااسکریپت است که یک بخش از خروجی HTML (رابط کاربری) را بازمیگرداند. کامپوننتها میتوانند دادههایی به نام Props (مخفف Properties) را از والد خود دریافت کنند و وضعیت داخلی خود را با State مدیریت کنند.
مزایای استفاده از کامپوننتها:
در ریاکت دو رویکرد اصلی برای تعریف کامپوننت وجود دارد:
کامپوننتهای تابعی، سادهترین و رایجترین روش نوشتن کامپوننت در React مدرن هستند. این نوع کامپوننتها در واقع یک تابع جاوااسکریپت هستند که یک المان React (UI) را بازمیگردانند.
function Greeting(props) {
return <h1>سلام {props.name}!</h1>;
}مزایای کامپوننت تابعی:
تبدیل به کامپوننت پیکانی (Arrow Function):
const Greeting = (props) => <h1>سلام {props.name}!</h1>;کامپوننتهای کلاسی، روش قدیمیتر نوشتن کامپوننت در React هستند که از کلاسهای ES6 و ارثبری از React.Component استفاده میکنند.
class Greeting extends React.Component {
render() {
return <h1>سلام {this.props.name}!</h1>;
}
}ویژگیهای کامپوننت کلاسی:
render() برای بازگرداندن UIthis.state و this.propscomponentDidMount| ویژگی | Functional Component | Class Component |
|---|---|---|
| سادگی | بسیار ساده | پیچیدهتر |
| حجم کد | کم | زیاد (Boilerplate) |
| استفاده از Hooks | بله | خیر (قبلاً) |
| متدهای چرخه حیات | با useEffect | با متدهای کلاسی |
| این (this) | ندارد | دارد |
| کاربرد امروزی | بسیار رایج | کمتر رایج |
import React, { useState } from 'react';
const Counter = () => {
const [count, setCount] = useState(0);
return (
<div>
<p>شمارش: {count}</p>
<button onClick={() => setCount(count + 1)}>افزایش</button>
</div>
);
};
export default Counter;Header، UserProfile.کامپوننتهای React پایه و اساس هر برنامه ریاکتی هستند. با درک صحیح از این مفهوم، میتوانید برنامههای ماژولار، مقیاسپذیر و قابل نگهداری بسازید. امروزه کامپوننتهای تابعی (Functional Components) به همراه Hooks به عنوان استاندارد اصلی توسعه ریاکت شناخته میشوند و برای شروع یادگیری ریاکت، تسلط بر این نوع کامپوننتها ضروری است.