カテゴリ: Next.js 更新日: 2026/03/04

Next.js Pages Routerで動的ルーティングを完全ガイド!初心者でもわかるURLの仕組み

Next.js Pages Routerで動的ルーティングを実装する方法
Next.js Pages Routerで動的ルーティングを実装する方法

先生と生徒の会話形式で理解しよう

生徒

「Next.jsって、ページを自動で切り替えられるって聞いたんですが、本当ですか?」

先生

「はい。Next.jsでは、ファイル名だけでページのURLが決まります。」

生徒

「じゃあ、商品ページみたいに、番号が変わるURLも作れるんですか?」

先生

「それが、Pages Routerの動的ルーティングです。仕組みから順番に見ていきましょう。」

1. Next.js Pages Routerとは何か

1. Next.js Pages Routerとは何か
1. Next.js Pages Routerとは何か

Next.jsのPages Routerとは、pagesフォルダの中に作ったファイルが、そのままWebページになる仕組みです。 たとえば、pages/index.jsはトップページ、pages/about.jsは「/about」というURLになります。 プログラミング未経験の方は、フォルダ=本棚、ファイル=本だと考えてください。 本棚に本を置くだけで、読む場所が自動的に決まるようなイメージです。

2. 動的ルーティングとは?

2. 動的ルーティングとは?
2. 動的ルーティングとは?

動的ルーティングとは、URLの一部が変わっても同じページで表示できる仕組みです。 たとえば「/user/1」「/user/2」のように、数字だけが変わるページを一つのプログラムで表示できます。 現実で例えると、名札の名前だけ差し替えるようなものです。 枠は同じで、中身だけが変わります。

3. ファイル名で動的ルーティングを作る方法

3. ファイル名で動的ルーティングを作る方法
3. ファイル名で動的ルーティングを作る方法

Pages Routerでは、ファイル名を角かっこで囲むだけで動的ルーティングができます。 たとえば「pages/user/[id].js」と書くと、「id」の部分が自由に変わるURLになります。


function UserPage() {
  return (
    <div>
      <h1>ユーザーページです</h1>
    </div>
  );
}

export default UserPage;
(/user/1 や /user/100 にアクセスすると、同じ画面が表示されます)

4. useRouterでURLの値を受け取る

4. useRouterでURLの値を受け取る
4. useRouterでURLの値を受け取る

URLの中の「id」を使いたいときは、Next.jsのuseRouterを使います。 useRouterとは、今開いているページの住所を教えてくれる道案内のようなものです。


import { useRouter } from "next/router";

function UserPage() {
  const router = useRouter();
  const { id } = router.query;

  return (
    <div>
      <h1>ユーザーIDは{id}です</h1>
    </div>
  );
}

export default UserPage;
(/user/5 にアクセスすると「ユーザーIDは5です」と表示されます)

5. 複数の動的ルーティングを使う場合

5. 複数の動的ルーティングを使う場合
5. 複数の動的ルーティングを使う場合

動的ルーティングは一つだけでなく、複数使うこともできます。 たとえば「/blog/2024/01」のようなURLです。 フォルダを重ねることで、より細かいページ分けができます。


import { useRouter } from "next/router";

function BlogPage() {
  const router = useRouter();
  const { year, month } = router.query;

  return (
    <div>
      <h1>{year}年 {month}月の記事一覧</h1>
    </div>
  );
}

export default BlogPage;
(/blog/2024/01 にアクセスすると年月が表示されます)

6. 動的ルーティングとリンクの関係

6. 動的ルーティングとリンクの関係
6. 動的ルーティングとリンクの関係

動的ルーティングのページにも、普通のリンクと同じように移動できます。 Next.jsではLinkコンポーネントを使うと、ページ移動が速くなります。 これは、次に読むページを先に準備してくれるイメージです。


import Link from "next/link";

function Home() {
  return (
    <div>
      <Link href="/user/10">ユーザー10を見る</Link>
    </div>
  );
}

export default Home;
(リンクをクリックすると /user/10 のページに移動します)

7. Pages RouterとApp Routerの違いを軽く理解する

7. Pages RouterとApp Routerの違いを軽く理解する
7. Pages RouterとApp Routerの違いを軽く理解する

Pages Routerは、昔からある分かりやすい仕組みで、初心者でも理解しやすいのが特徴です。 ファイル名とURLが直結しているため、「なぜこのページが表示されるのか」が目で見て分かります。 動的ルーティングも、角かっこを使うだけなので、難しい設定は不要です。 まずはPages Routerで、URLとページの関係に慣れることが大切です。

カテゴリの一覧へ
新着記事
New1
React
Reactで再利用可能なリスト表示コンポーネントを実装しよう!初心者でもわかるReactのコンポーネント分割
New2
React
ReactのPropsとStateのベストプラクティスを整理しよう!初心者でもわかる使い方ガイド
New3
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
New4
Next.js
Next.js App Routerのtemplate.tsxの役割を完全解説!初心者でも理解できるレイアウト管理の基本
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.3
Java&Spring記事人気No3
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.4
Java&Spring記事人気No4
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.5
Java&Spring記事人気No5
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本
No.8
Java&Spring記事人気No8
React
ReactでuseStateを使ったオブジェクト・配列の扱い方完全ガイド!初心者でもわかるReactフック