مقدمه

به فصل چهارم خوش آمدید! اکنون که با JSX آشنا شده‌ایم، آماده‌ایم تا به قلب تپنده React یعنی «کامپوننت‌ها» بپردازیم. همانطور که قبلاً اشاره شد، کامپوننت‌ها به ما اجازه می‌دهند تا رابط کاربری (UI) را به قطعات کوچک، مستقل و قابل استفاده مجدد تقسیم کنیم. این رویکرد، توسعه اپلیکیشن‌های پیچیده را بسیار ساده‌تر و مدیریت‌پذیرتر می‌کند.

در React مدرن، روش اصلی برای ساخت کامپوننت‌ها، استفاده از «کامپوننت‌های تابعی» (Functional Components) است. این کامپوننت‌ها در واقع توابع ساده جاوااسکریپت هستند که JSX را برمی‌گردانند.

ساختار یک کامپوننت تابعی

یک کامپوننت تابعی در ساده‌ترین حالت، یک تابع جاوااسکریپت است که یک UI را توصیف می‌کند. بیایید یک کامپوننت برای نمایش پیام خوشامدگویی بسازیم.

Copy Icon JAVASCRIPT (React)
import React from 'react';

function Welcome() {
  return <h1>Hello, world!</h1>;
}

export default Welcome;

بیایید این ساختار را بررسی کنیم:

  • وارد کردن React: هرچند ممکن است به نظر برسد که متغیر React مستقیماً در کد JSX استفاده نشده، اما وارد کردن آن ضروری است. زیرا کامپایلر Babel کد JSX شما را به فراخوانی‌های React.createElement() تبدیل می‌کند.
  • تعریف تابع: ما یک تابع جاوااسکریپت استاندارد به نام Welcome تعریف کرده‌ایم. طبق قرارداد، نام کامپوننت‌ها همیشه با حرف بزرگ شروع می‌شود. این به React کمک می‌کند تا کامپوننت‌های سفارشی را از تگ‌های HTML عادی تشخیص دهد.
  • بازگرداندن JSX: تابع ما یک عنصر JSX را برمی‌گرداند که UI کامپوننت را توصیف می‌کند.
  • خروجی گرفتن (Export): با استفاده از export default، ما این کامپوننت را در دسترس سایر فایل‌های پروژه قرار می‌دهیم تا بتوانیم آن را در کامپوننت‌های دیگر import کرده و استفاده کنیم.

استفاده از کامپوننت‌ها

پس از تعریف یک کامپوننت، می‌توانید از آن در داخل کامپوننت‌های دیگر، درست مانند یک تگ HTML سفارشی، استفاده کنید.

Copy Icon App.js
import Welcome from './Welcome';

function App() {
  return (
    <div>
      <Welcome />
      <Welcome />
      <Welcome />
    </div>
  );
}

export default App;

در این مثال، ما کامپوننت Welcome را در فایل App.js وارد کرده و سه بار از آن استفاده کرده‌ایم. این یکی از بزرگترین مزایای کامپوننت‌ها را نشان می‌دهد: **قابلیت استفاده مجدد**. ما یک بار منطق و ساختار Welcome را تعریف کردیم و اکنون می‌توانیم هر چند بار که بخواهیم از آن در سراسر اپلیکیشن خود استفاده کنیم.

در این درس، با ساختار و نحوه تعریف کامپوننت‌های تابعی به عنوان بلوک‌های سازنده اصلی در React آشنا شدیم. دیدیم که این کامپوننت‌ها توابع ساده جاوااسکریپت هستند که JSX را برمی‌گردانند و می‌توانند به راحتی در کنار هم ترکیب شوند. در درس بعدی، به «استفاده از props و ارسال داده به کامپوننت‌ها» خواهیم پرداخت و یاد می‌گیریم که چگونه کامپوننت‌های خود را با ارسال داده‌های داینامیک، انعطاف‌پذیرتر و قدرتمندتر کنیم.