首頁 > web前端 > js教程 > 使用 App Router 和路由群組管理 Next.js 中的多個佈局

使用 App Router 和路由群組管理 Next.js 中的多個佈局

Mary-Kate Olsen
發布: 2025-01-17 02:34:11
原創
564 人瀏覽過

Managing Multiple Layouts in Next.js with App Router and Route Groups

在 Next.js 13 中,引入了 App Router 以及一些令人興奮的功能,例如佈局、錯誤邊界、載入指示器等。然而,一些開發人員在管理同一路線層級的多個佈局時面臨挑戰。下面,我將向您展示針對此類場景建立和維護乾淨、方便的佈局的最佳方法。

第 1 步:建立根佈局(可選)

根佈局對於為整個應用程式定義全域元件或上下文提供者非常有用。不過,如果您的應用程式不需要全域配置,則可以跳過此步驟。

// app/layout.tsx

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html>
      <body>
        <RootProviders>
          {children}
        </RootProviders>
      </body>
    </html>
  );
}
登入後複製

步驟 2:定義特定路由群組的佈局

假設我們需要 /home 和 /contact 頁面的頁首和頁尾。為了實現這一點,我們可以使用 Next.js 路由組。

例如,我們將建立一個名為 (行銷) 的路由群組,並將我們的頁面放入其中。像 app/(marketing)/home/page.tsx 和 app/(marketing)/contact/page.tsx 這樣的頁面將使用 app/(marketing)/layout.tsx 佈局。

// app/(marketing)/layout.tsx

export default function MarketingLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <Providers>
      <Header />
      <main>{children}</main>
      <Footer />
    </Providers>
  );
}
登入後複製

步驟 3:為其他路由群組建立佈局

同樣,對於 /policy 和 /tos 這樣的頁面,我們可以建立一個名為 (合法) 的新路由組,並為其定義特定的佈局。

// app/(legal)/layout.tsx

export default function LegalLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <>
      <Header />
      <main className="container mx-auto">{children}</main>
    </>
  );
}
登入後複製

主要優點

使用這種方法,您可以:

  1. 在同一層級維護路線的多種佈局。
  2. 保持項目結構整潔有序。
  3. 針對某些版面實現特定功能,例如 Google Analytics。例如,您可以專門在 LegalLayout 中為 /policy 和 /tos 等頁面添加分析追蹤。

透過利用路由群組佈局,Next.js 讓您能夠為您的應用程式建立模組化、可擴展且可維護的架構。

以上是使用 App Router 和路由群組管理 Next.js 中的多個佈局的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板