# nextjs-dynamic-routes-params

Скилл подсказывает агенту, как строить динамические сегменты App Router и читать params в Next.js 15+. Пригодится, когда страницы зависят от ID или слага из URL.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 303 установки · ★ 109
- Автор: wsimmonds
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/wsimmonds/claude-nextjs-skills/tree/HEAD/nextjs-dynamic-routes-params/SKILL.md
- Обновлён: 2025-10-24
- HTML: https://affpapa.org/nevibecode/skills/nextjs-dynamic-routes-params

## Что делает

Скилл включается, когда задача завязана на кусок пути: страница товара по ID, статья по slug, вложенные доки. Агент создаёт папку с квадратными скобками, например `app/[id]/page.tsx`, и достаёт параметр через `const { id } = await params;`.

Главное, что он чинит, — лишнюю вложенность. По умолчанию берётся самый простой маршрут: `app/[id]/page.tsx`, а не `app/products/[id]/page.tsx`. Префикс категории добавляется только тогда, когда структура URL задана прямо или нужна развязка нескольких типов ресурсов. Если требование звучит как «показать товар по ID», без явного `/products/...` вложенной папки не будет.

Внутри — правила по синтаксису сегментов, catch-all и опциональным catch-all маршрутам, плюс разбор доступа к `params` в серверных компонентах, `route.ts` и клиентских компонентах. Отдельно отмечено, что в Next.js 15+ `params` — это Promise, его нужно ждать; код под Next.js 14 и раньше выглядит иначе, и путать эти два варианта нельзя. Скилл просит доступ к `Read`, `Write`, `Edit`, `Glob`, `Grep` и `Bash`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/nextjs-dynamic-routes-params/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/nextjs-dynamic-routes-params/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/nextjs-dynamic-routes-params/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/nextjs-dynamic-routes-params/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install wsimmonds/claude-nextjs-skills nextjs-dynamic-routes-params
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/nextjs-dynamic-routes-params/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/wsimmonds/claude-nextjs-skills --path nextjs-dynamic-routes-params
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/nextjs-dynamic-routes-params/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add wsimmonds/claude-nextjs-skills --skill nextjs-dynamic-routes-params -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/wsimmonds/claude-nextjs-skills/tree/HEAD/nextjs-dynamic-routes-params/SKILL.md

## Когда брать
- создать динамический сегмент маршрута по ID или slug
- прочитать `params` в серверном компоненте без ошибки с Promise
- выбрать между `app/[id]` и `app/products/[id]`
- настроить catch-all маршрут для вложенных путей
- достать параметр пути в `route.ts` или клиентском компоненте

## Примеры запросов агенту
- Сделай страницу товара, которая грузит данные по ID из URL
- Добавь маршрут для статьи по slug в блоге
- Как прочитать `params` в `page.tsx` на Next.js 15?

## Похожие
- [nextjs-developer](https://affpapa.org/nevibecode/skills/nextjs-developer.md) — скилл · 5800 установок
- [nextjs-cache-architecture](https://affpapa.org/nevibecode/skills/nextjs-cache-architecture.md) — скилл · 5000 установок
- [nextjs-app-router](https://affpapa.org/nevibecode/skills/nextjs-app-router.md) — скилл · 3900 установок
- [nextjs-architecture-expert](https://affpapa.org/nevibecode/agents/nextjs-architecture-expert.md) — субагент · 4935 установок
- [nextjs-migration-helper](https://affpapa.org/nevibecode/commands/nextjs-migration-helper.md) — команда · 237 установок
- [nextjs-app-router-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/nextjs-app-router-cursorrules-prompt-file.md) — правило · ★ 41011

Из того же набора: [wsimmonds/claude-nextjs-skills](https://affpapa.org/nevibecode/by/wsimmonds/claude-nextjs-skills.md) — 6 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
