Next.js Routing

Advanced Layouts

Nested layouts, layout groups, parallel routes, and shared layouts.

Advertisement

Advanced Layouts

Nested layouts, layout groups, parallel routes, and shared layouts.

Overview

Layouts provide persistent UI across multiple pages.

Key Concepts

  • Nested Layouts — Layouts that wrap specific routes
  • Layout Groups — Group routes with shared layout
  • Parallel Routes — Render multiple layouts simultaneously
  • Shared Layouts — Common UI across different sections
  • Layout Restoration — Maintain layout state during navigation

Code Examples

// app/dashboard/layout.js
export default function DashboardLayout({ children }) {
  return (
    <div className="flex">
      <Sidebar />
      <main className="flex-1">{children}</main>
    </div>
  );
}

// Nested layouts
// app/dashboard/settings/layout.js
export default function SettingsLayout({ children }) {
  return (
    <div>
      <SettingsNav />
      {children}
    </div>
  );
}

// Layout groups
// app/(marketing)/layout.js
export default function MarketingLayout({ children }) {
  return (
    <div>
      <MarketingHeader />
      {children}
      <MarketingFooter />
    </div>
  );
}

// Parallel routes
// app/layout.js
export default function RootLayout({ children, analytics, notifications }) {
  return (
    <html>
      <body>
        {children}
        {analytics}
        {notifications}
      </body>
    </html>
  );
}

Practice

Build a dashboard with nested layouts and parallel route slots.