カテゴリ: 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とTypeScriptの相性とは?型安全な開発のメリット
New2
Next.js
Next.js Pages Routerで動的ルーティングを完全ガイド!初心者でもわかるURLの仕組み
New3
React
ReactのuseEffectで複数の非同期処理を扱う方法!初心者でもわかるベストプラクティス
New4
React
ReactのJSX属性に動的な値を渡す方法とは?初心者でもわかる完全ガイド
人気記事
No.1
Java&Spring記事人気No1
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.2
Java&Spring記事人気No2
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.3
Java&Spring記事人気No3
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.4
Java&Spring記事人気No4
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.5
Java&Spring記事人気No5
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
Reactのライフサイクルでよくあるバグとデバッグ方法を初心者向けに解説
No.8
Java&Spring記事人気No8
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説