#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
•Question 2 of 47easy

How does file-based routing work in Next.js?

Understanding Next.js App Router and Pages Router.

What You'll Learn

  • App Router structure
  • Dynamic routes
  • Route groups

App Router (Next.js 13+)

code.jsJavaScript
app/
ā”œā”€ā”€ page.tsx              → /
ā”œā”€ā”€ about/
│   └── page.tsx          → /about
ā”œā”€ā”€ blog/
│   ā”œā”€ā”€ page.tsx          → /blog
│   └── [slug]/
│       └── page.tsx      → /blog/:slug
ā”œā”€ā”€ (marketing)/
│   ā”œā”€ā”€ pricing/
│   │   └── page.tsx      → /pricing
│   └── features/
│       └── page.tsx      → /features
└── api/
    └── users/
        └── route.ts      → /api/users

Special Files

code.jsJavaScript
page.tsx      - Route UI
layout.tsx    - Shared layout
loading.tsx   - Loading UI
error.tsx     - Error UI
not-found.tsx - 404 page

Dynamic Routes

code.tsTypeScript
// app/blog/[slug]/page.tsx
export default function BlogPost({ params }: { params: { slug: string } }) {
  return <h1>Post: {params.slug}</h1>;
}

// Catch-all: app/docs/[...slug]/page.tsx
// Matches /docs/a, /docs/a/b, /docs/a/b/c

Route Groups

code.jsJavaScript
// (marketing) doesn't affect URL
app/(marketing)/about/page.tsx → /about
app/(shop)/products/page.tsx   → /products