カテゴリ: 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 Context APIのパフォーマンス最適化を徹底解説!useMemoで無駄な描画を防ぐ方法
New2
React
ReactのProps必須・オプショナル指定を完全解説!初心者でもわかる型安全なProps管理
New3
React
Reactでデフォルト動作を止める!preventDefaultの使い方を初心者向けに解説
New4
Next.js
Next.js ISR(Incremental Static Regeneration)が必要になるケースを初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
React
Reactの子コンポーネントから親コンポーネントへデータを渡す方法を徹底解説!初心者にもわかるReactのイベントとデータの流れ
No.2
Java&Spring記事人気No2
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.3
Java&Spring記事人気No3
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.4
Java&Spring記事人気No4
React
ReactのContext APIとReduxの違いを初心者向けに徹底比較!どちらを使うべきか完全解説
No.5
Java&Spring記事人気No5
React
ReactのState管理ベストプラクティス!初心者でもわかる再レンダリング最適化の考え方
No.6
Java&Spring記事人気No6
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Next.js
Next.jsのSSR(Server Side Rendering)入門!Pages Routerとの違いを初心者向けに解説
No.8
Java&Spring記事人気No8
Next.js
Next.jsのServer ComponentsとClient Componentsの通信方法を完全解説!props渡しの基本と使い方