Dev Study
Next.js コース

5. 動的ルート — [id] でURLの一部を受け取る

ブログ記事のように「/blog/1」「/blog/2」と無数にあるページは、フォルダ名を角括弧にした app/blog/[id]/page.tsx という1つのファイルでまとめて作れます。角括弧の部分は何にでもマッチし、その値は params から受け取れます。

受け取り方には注意が必要です。App Router では params は Promise なので、ページコンポーネントを async にして const { id } = await params のように await してから使います("1" や "2" が取り出せます)。

実務では記事詳細、商品ページ、ユーザープロフィールなど「同じレイアウトで中身だけ違うページ」のほぼすべてで使います。受け取った id を使ってその記事のデータを探し、表示する、という流れが定番です。

下のコードは、この「パターンと URL の照合」を Next.js なしのプレーンな TypeScript で再現したものです。[id] のような部分は値を取り出し、それ以外は完全一致を要求する、という動きを実行して確かめてみてください。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗