nextjs-dynamic-routes-params

Maps URL segments to dynamic route files and accesses params in Next.js App Router.

109|21|Updated Oct 23, 2025
One-click install
npx skills add https://github.com/wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params-wsimmonds
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nextjs-dynamic-routes-params
Source: https://github.com/wsimmonds/claude-nextjs-skills/tree/main/nextjs-dynamic-routes-params
Command: npx skills add https://github.com/wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params-wsimmonds

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill guides building Next.js App Router dynamic routes and pathname parameters, including [id], [slug], catch-all, and optional catch-all patterns. It emphasizes using the simplest route structure first.

Core Features & Use Cases

  • Dynamic segments like [id], [slug], and catch-all routes
  • Accessing params in server components via await params
  • Catch-all patterns including optional catch-all

Quick Start

Create a top-level dynamic route app/[id]/page.tsx that reads the id from params and fetches data; for client components, use useParams().

Frequently Asked Questions about nextjs-dynamic-routes-params

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create dynamic routes in Next.js App Router?

Dynamic routes in Next.js App Router use bracketed folder names like [id] or [slug] to capture URL segments. Create a folder with brackets (e.g., app/[id]) and add page.tsx inside; the segment value becomes accessible via the params prop passed to your page component.

How do I access pathname parameters in Next.js server components?

Access pathname parameters in server components by awaiting the params prop: `const params = await props.params; const id = params.id;`. This pattern works in page.tsx and layout.tsx files within dynamic route segments.

What's the difference between catch-all and optional catch-all routes in Next.js?

Catch-all routes use [...slug] and match one or more segments; optional catch-all routes use [...[slug]] and match zero or more segments, including the parent route itself. Both capture remaining URL parts as arrays in the params prop.

Can I use dynamic routes with client components in Next.js?

Yes, use the useParams() hook in client components to access dynamic route parameters. This provides the same params object available to server components, enabling client-side logic based on URL segments.

When should I use dynamic routes versus static routes in Next.js?

Use dynamic routes when URL segments represent variable data like product IDs or user slugs. Use static routes for fixed paths. Dynamic routes enable data-driven pages that respond to pathname changes without creating separate files for each value.

Do I need special setup to fetch data based on route parameters in Next.js?

No special setup required; access route params directly in server components or layouts to fetch data conditionally. Pass the extracted parameter (e.g., id) to your data-fetching function, and Next.js handles caching and revalidation automatically.