ساخت Layout در Next.js و جلوگیری از تکرار کد

توسعه‌دهنده فرانت‌اند

ساخت Layout در Next.js و جلوگیری از تکرار کد

Layout در Next.js روشی برای ایجاد ساختارهای مشترک بین صفحات است. با استفاده از layout.tsx می‌توان بخش‌هایی مانند Header، Footer و Sidebar را یک‌بار تعریف کرد و در چندین صفحه استفاده کرد. این قابلیت باعث کاهش کدهای تکراری و ساده‌تر شدن مدیریت پروژه می‌شود.

ساخت Layout در Next.js و جلوگیری از تکرار کد

مهدیس پژوهان

توسعه‌دهنده فرانت‌اند

۱۴۰۵/۷/۱۴
۰ نفر
۴ دقیقه مطالعه

# ساخت Layout در Next.js و جلوگیری از تکرار کد

در بسیاری از پروژه‌های وب، بخش‌هایی مانند Header، Footer یا Sidebar در چندین صفحه تکرار می‌شوند. اگر این بخش‌ها را در هر صفحه جداگانه بنویسیم، هم کد پروژه بیشتر می‌شود و هم تغییر دادن آن‌ها سخت‌تر خواهد شد.

Next.js با استفاده از Layout راه ساده‌ای برای مدیریت این بخش‌های مشترک در اختیار ما قرار می‌دهد.

## Layout در Next.js چیست؟

Layout یک ساختار مشترک برای چند صفحه است.

برای مثال فرض کنید یک سایت داریم که بیشتر صفحات آن این ساختار را دارند:

```text

Header

──────

محتوای صفحه

──────

Footer

```

به جای اینکه Header و Footer را در تمام صفحات تکرار کنیم، می‌توانیم آن‌ها را داخل یک layout.tsx قرار دهیم.

## ساخت یک Layout ساده

در پروژه‌ای که از App Router استفاده می‌کند، می‌توانیم یک layout.tsx داخل پوشه app داشته باشیم:

```text

app/

├── layout.tsx

├── page.tsx

├── about/

│ └── page.tsx

└── products/

└── page.tsx

```

یک Layout ساده می‌تواند به شکل زیر باشد:

```tsx

export default function RootLayout({

children,

}: {

children: React.ReactNode;

}) {

return (

<html lang="fa" dir="rtl">

<body>

<header>

Header

</header>

{children}

<footer>

Footer

</footer>

</body>

</html>

);

}

```

قسمت {children} محتوای صفحه‌ای است که کاربر در حال مشاهده آن است.

بنابراین اگر کاربر وارد /about شود، محتوای about/page.tsx در قسمت {children} قرار می‌گیرد.

## چرا Layout مفید است؟

مهم‌ترین مزیت Layout این است که از تکرار کد جلوگیری می‌کند.

بدون Layout ممکن است مجبور شویم در صفحات مختلف چنین ساختاری داشته باشیم:

```tsx

<Header />

<main>

...

</main>

<Footer />

```

اما با Layout فقط یک بار Header و Footer را تعریف می‌کنیم.

در نتیجه اگر بعداً بخواهیم Header را تغییر دهیم، لازم نیست چندین فایل را ویرایش کنیم.

## Layoutهای تو در تو

یکی از قابلیت‌های کاربردی Next.js این است که می‌توانیم برای بخش‌های مختلف سایت Layout جدا داشته باشیم.

مثلاً:

```text

app/

├── layout.tsx

├── page.tsx

├── dashboard/

│ ├── layout.tsx

│ ├── page.tsx

│ └── users/

│ └── page.tsx

└── products/

└── page.tsx

```

در این مثال، صفحات داخل dashboard می‌توانند علاوه بر Layout اصلی، Layout مخصوص داشبورد را نیز داشته باشند.

مثلاً Layout داشبورد می‌تواند Sidebar داشته باشد:

```text

Header

────────────────

Sidebar | Content

|

|

Footer

```

در حالی که صفحات عادی سایت نیازی به این Sidebar ندارند.

## Layout چه زمانی استفاده می‌شود؟

Layout برای بخش‌هایی مناسب است که بین چند صفحه مشترک هستند، مثل:

* Header

* Footer

* Sidebar

* Navigation

* ساختار کلی Dashboard

* بخش‌های مشترک صفحات

اما اگر یک بخش فقط در یک صفحه استفاده می‌شود، معمولاً نیازی نیست آن را داخل Layout قرار دهیم.

## Layout و جلوگیری از کدهای تکراری

فرض کنید یک فروشگاه اینترنتی داریم و ۲۰ صفحه مختلف دارد.

اگر Header و Footer را در هر صفحه بنویسیم، در صورت ایجاد یک تغییر کوچک باید چندین فایل را تغییر دهیم.

اما با Layout:

```text

Layout

├── Header

├── Page Content

└── Footer

```

ساختار مشترک فقط یک بار تعریف می‌شود و تمام صفحات می‌توانند از آن استفاده کنند.

این کار باعث می‌شود پروژه:

* مرتب‌تر باشد

* کد کمتری داشته باشد

* راحت‌تر تغییر کند

* نگهداری ساده‌تری داشته باشد

## جمع‌بندی

Layout یکی از قابلیت‌های کاربردی Next.js برای ساختاردهی بهتر پروژه است.

به زبان ساده، هر چیزی که قرار است بین چند صفحه مشترک باشد، می‌تواند گزینه مناسبی برای قرار گرفتن در Layout باشد.

با استفاده درست از Layout می‌توانیم از تکرار کد جلوگیری کنیم و ساختار پروژه را تمیزتر و قابل نگهداری‌تر نگه داریم.

این مطلب برای شما مفید بود؟با لایک کردن، به ما انرژی بدهید
۰ نفر این مطلب را پسندیده‌اند