カテゴリ: Next.js 更新日: 2026/02/14

Next.jsのgetStaticProps / getServerSidePropsを完全ガイド!初心者でもわかるNext.js Pages Routerのデータ取得

Next.js Pages RouterのgetStaticProps / getServerSidePropsを理解する
Next.js Pages RouterのgetStaticProps / getServerSidePropsを理解する

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

生徒

「Next.jsにはgetStaticPropsとgetServerSidePropsってありますけど、何が違うんですか?」

先生

「どちらもページを表示する前にデータを準備する仕組みです。ただし、準備するタイミングが大きく違います。」

生徒

「タイミングが違うって、いつデータを取ってくるかってことですか?」

先生

「その通りです。これから図をイメージしながら、ゆっくり説明していきます。」

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

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

Next.jsのPages Routerとは、pagesフォルダの中にファイルを置くだけでWebページが作れる仕組みです。ファイル名がそのままURLになるので、初心者でも迷いにくいのが特徴です。

たとえば、pages/index.jsはトップページ、pages/about.jsは「aboutページ」になります。Next.jsでは、このPages Routerでページごとにデータを準備する方法として、getStaticPropsとgetServerSidePropsが用意されています。

2. getStaticPropsとは?静的にデータを準備する仕組み

2. getStaticPropsとは?静的にデータを準備する仕組み
2. getStaticPropsとは?静的にデータを準備する仕組み

getStaticPropsは、ページを事前に作るときにデータを取得する方法です。料理に例えると、お店が開く前にお弁当をたくさん作って並べておくイメージです。

一度作られたページは、アクセスする人が何人いても同じ内容が表示されるため、表示がとても速くなります。


export async function getStaticProps() {
  return {
    props: {
      message: "これは事前に用意されたメッセージです"
    }
  };
}

export default function Home({ message }) {
  return <h1>{message}</h1>;
}
(ページを開くと「これは事前に用意されたメッセージです」と表示されます)

3. getServerSidePropsとは?アクセスごとにデータを取得する仕組み

3. getServerSidePropsとは?アクセスごとにデータを取得する仕組み
3. getServerSidePropsとは?アクセスごとにデータを取得する仕組み

getServerSidePropsは、ページにアクセスされるたびにデータを取得します。これは注文を受けてから料理を作るレストランのような仕組みです。

毎回最新の情報を表示したい場合に向いていますが、その分ページ表示は少し遅くなります。


export async function getServerSideProps() {
  return {
    props: {
      time: new Date().toLocaleString()
    }
  };
}

export default function Page({ time }) {
  return <p>現在の時刻:{time}</p>;
}
(ページを更新するたびに表示される時刻が変わります)

4. getStaticPropsとgetServerSidePropsの違いを整理

4. getStaticPropsとgetServerSidePropsの違いを整理
4. getStaticPropsとgetServerSidePropsの違いを整理

この2つの大きな違いは「いつデータを取るか」です。getStaticPropsはビルド時、getServerSidePropsはアクセス時に実行されます。

ブログ記事や説明ページのように内容が頻繁に変わらない場合はgetStaticProps、ログイン情報や在庫数のように変わりやすい情報はgetServerSidePropsが向いています。

5. Pages Routerで使えるのはどっち?

5. Pages Routerで使えるのはどっち?
5. Pages Routerで使えるのはどっち?

getStaticPropsとgetServerSidePropsは、どちらもPages Router専用の機能です。App Routerでは別の方法でデータ取得を行います。

そのため、Pages Routerを使っているNext.jsのプロジェクトでは、この2つを理解することがとても重要になります。

6. 初心者がよくつまずくポイント

6. 初心者がよくつまずくポイント
6. 初心者がよくつまずくポイント

初心者の方が混乱しやすいのは、「画面の中で直接使えない」という点です。これらの関数はコンポーネントの外に書く必要があります。


export async function getStaticProps() {
  return { props: { title: "テストページ" } };
}

function Test({ title }) {
  return <h2>{title}</h2>;
}

export default Test;

データはpropsという形で画面に渡される、という流れを意識すると理解しやすくなります。

7. どちらを使うか迷ったときの考え方

7. どちらを使うか迷ったときの考え方
7. どちらを使うか迷ったときの考え方

「その情報は毎回変わるのか?」と自分に質問してみてください。変わらないならgetStaticProps、変わるならgetServerSidePropsという考え方で十分です。

最初は完璧に理解しなくても、使いながら少しずつ慣れていくことが大切です。

カテゴリの一覧へ
新着記事
New1
React
ReactとTypeScriptの基本:APIレスポンス型を定義する方法を徹底解説!初心者向け入門ガイド
New2
Next.js
Next.jsのgetStaticProps / getServerSidePropsを完全ガイド!初心者でもわかるNext.js Pages Routerのデータ取得
New3
Next.js
Next.jsのApp RouterとPages Routerの役割の違いを完全解説!初心者でもわかるNext.jsの基本概念
New4
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
人気記事
No.1
Java&Spring記事人気No1
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.2
Java&Spring記事人気No2
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.3
Java&Spring記事人気No3
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.4
Java&Spring記事人気No4
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.5
Java&Spring記事人気No5
React
Reactのチェックボックス入力を完全解説!初心者でもわかるReactフォーム処理
No.6
Java&Spring記事人気No6
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
Next.js
Next.jsのApp RouterとPages Routerの役割の違いを完全解説!初心者でもわかるNext.jsの基本概念