کامپوننتها پایهٔ اصلی هر پروژهٔ React هستند. هر کامپوننت مسئول بخشی از رابط کاربری یا منطق است. با بزرگتر شدن پروژه، تقسیم کامپوننتها به بخشهای کوچکتر ضروری میشود تا کد قابل نگهداری و توسعهپذیر باقی بماند.
در ابتدا، همهٔ کدها در کامپوننت App قرار دارند. اما بهجای بزرگتر کردن این کامپوننت، میتوان بخشهایی مانند لیست آیتمها یا فرم جستجو را به کامپوننتهای جداگانه تبدیل کرد:
function List() {
return (
{list.map(item => (
-
{item.title}
{item.author}
{item.num_comments}
{item.points}
))}
);
}function Search() {
return (
);
}در React، کامپوننتها بهصورت درختی سازماندهی میشوند. کامپوننت App ریشهٔ درخت است و کامپوننتهای List و Search فرزندان آن هستند. اگر کامپوننت Item را از List جدا کنیم، ساختار زیر شکل میگیرد:
کامپوننتهایی که کامپوننت دیگری را رندر نمیکنند، برگ
تعریف یک کامپوننت مانند تعریف کلاس در جاوااسکریپت است. اما استفاده از آن در JSX مانند نمونهسازی از کلاس است:
function List() { ... }
function App() {
return (
);
}میتوان چندین نمونه از یک کامپوننت ایجاد کرد، به شرطی که تعریف آن وجود داشته باشد.
با رشد پروژههای React، تقسیم وظایف بین کامپوننتها و ساختاردهی سلسلهمراتبی اهمیت زیادی پیدا میکند. استخراج کامپوننتها باعث خوانایی، نگهداری آسان، و قابلیت استفادهٔ مجدد میشود. نمونهسازی کامپوننتها نیز امکان استفادهٔ چندباره از یک واحد منطقی را فراهم میکند.