4 min read
ā¢Question 2 of 47easyHow 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/usersSpecial Files
code.jsJavaScript
page.tsx - Route UI
layout.tsx - Shared layout
loading.tsx - Loading UI
error.tsx - Error UI
not-found.tsx - 404 pageDynamic 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/cRoute Groups
code.jsJavaScript
// (marketing) doesn't affect URL
app/(marketing)/about/page.tsx ā /about
app/(shop)/products/page.tsx ā /products