Next.js 13 では、レイアウト、エラー境界、読み込みインジケーターなど、いくつかの魅力的な機能を備えた App Router が導入されました。ただし、一部の開発者は、同じルート レベルで複数のレイアウトを管理するときに課題に直面します。以下では、そのようなシナリオでクリーンで便利なレイアウトを構築および維持するための最良の方法を示します。
ルート レイアウトは、アプリ全体のグローバル コンポーネントまたはコンテキスト プロバイダーを定義するのに役立ちます。ただし、アプリにグローバル構成が必要ない場合は、この手順をスキップできます。
// app/layout.tsx export default function RootLayout({ children, }: { children: React.ReactNode; }) { return ( <html> <body> <RootProviders> {children} </RootProviders> </body> </html> ); }
/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> ); }
同様に、/policy や /tos などのページの場合、(legal) という新しいルート グループを作成し、それに特定のレイアウトを定義できます。
// app/(legal)/layout.tsx export default function LegalLayout({ children, }: { children: React.ReactNode; }) { return ( <> <Header /> <main className="container mx-auto">{children}</main> </> ); }
このアプローチを使用すると、次のことが可能になります。
Next.js では、ルート グループ と レイアウト を活用することで、アプリケーション用のモジュール式でスケーラブルで保守可能なアーキテクチャを作成できます。
以上がApp Router と Route Group を使用した Next.js での複数のレイアウトの管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。