← 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つの具体例で確認します。
公式ドキュメントで詳しく ↗