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

Next.js Server Componentsの基本を完全ガイド!初心者でもわかるNext.js Server Componentsでできること・できないこと

Next.js Server Componentsでできること・できないこと
Next.js Server Componentsでできること・できないこと

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

生徒

「Next.jsのServer Componentsって、そもそも何なんですか?」

先生

「Next.jsでは、サーバー側で動く部品と、ブラウザ側で動く部品を分けて作れる仕組みがあります。それがServer Componentsです。」

生徒

「サーバーとかブラウザって、パソコン初心者でも理解できますか?」

先生

「大丈夫です。今日はたとえ話を使いながら、できること・できないことを順番に説明します。」

1. Next.js Server Componentsとは何か?

1. Next.js Server Componentsとは何か?
1. Next.js Server Componentsとは何か?

Next.js Server Componentsとは、Next.jsというWebアプリを作る道具の中で、 「サーバーでだけ動く部品」を指します。サーバーとは、インターネットの向こう側にある コンピューターのことで、Webページを作って送ってくれる役割を持っています。

たとえるなら、レストランの厨房がサーバーで、完成した料理をお客さんに出すのがブラウザです。 Server Componentsは、厨房の中だけで調理をする担当だと考えると分かりやすいです。

2. Server Componentsでできること① データを直接取得できる

2. Server Componentsでできること① データを直接取得できる
2. Server Componentsでできること① データを直接取得できる

Next.js Server Componentsの大きな特徴は、データを直接サーバーから取得できる点です。 データとは、商品情報やユーザー名などの文字や数字の集まりのことです。


async function Page() {
  const data = await fetch("https://example.com/api/data");
  const result = await data.json();

  return <h1>{result.title}</h1>;
}

export default Page;
(サーバー側でデータを取得し、画面にタイトルの文字が表示されます)

このように、Server Componentsでは特別な準備をしなくても、データを安全に扱えます。

3. Server Componentsでできること② 秘密の情報を守れる

3. Server Componentsでできること② 秘密の情報を守れる
3. Server Componentsでできること② 秘密の情報を守れる

パスワードや秘密の設定値など、外に出てはいけない情報を扱えるのも特徴です。 ブラウザ側に送られないため、他人に見られる心配がありません。


function SecretMessage() {
  const secret = "これはサーバーだけの秘密";

  return <p>{secret}</p>;
}

export default SecretMessage;
(画面には文字が表示されますが、中身はサーバー内で処理されています)

4. Server Componentsでできること③ 表示専用の画面作り

4. Server Componentsでできること③ 表示専用の画面作り
4. Server Componentsでできること③ 表示専用の画面作り

Server Componentsは、画面を表示するだけの役割が得意です。 ボタンを押したり、入力したりしない説明ページに向いています。


function AboutPage() {
  return (
    <div>
      <h1>このサイトについて</h1>
      <p>Next.jsで作られた説明ページです。</p>
    </div>
  );
}

export default AboutPage;

5. Server Componentsでできないこと① 画面の操作に反応する処理

5. Server Componentsでできないこと① 画面の操作に反応する処理
5. Server Componentsでできないこと① 画面の操作に反応する処理

ボタンを押したときに画面が変わるような処理は、Server Componentsではできません。 これは、ブラウザ側で動く仕組みが使えないためです。

このような操作は、Client Componentsと呼ばれる別の部品で行います。

6. Server Componentsでできないこと② useStateやuseEffectの使用

6. Server Componentsでできないこと② useStateやuseEffectの使用
6. Server Componentsでできないこと② useStateやuseEffectの使用

useStateやuseEffectは、画面の状態を管理するための仕組みです。 これらはブラウザ専用なので、Server Componentsでは使えません。


"use client";

import { useState } from "react";

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      {count}
    </button>
  );
}

export default Counter;
(ボタンを押すたびに数字が増えます。これはClient Componentsの例です)

7. Server ComponentsとClient Componentsの使い分け

7. Server ComponentsとClient Componentsの使い分け
7. Server ComponentsとClient Componentsの使い分け

Next.jsでは、表示だけならServer Components、操作が必要ならClient Components、 という考え方が基本です。役割を分けることで、表示が速くなり、安全性も高まります。

8. 初心者が最初に意識したいポイント

8. 初心者が最初に意識したいポイント
8. 初心者が最初に意識したいポイント

最初は「これは表示だけか?操作が必要か?」を考えるだけで十分です。 表示だけならServer Componentsを使う、と覚えておくと混乱しません。

カテゴリの一覧へ
新着記事
New1
React
Reactの環境変数の設定方法を徹底解説!初心者でもわかる.envファイルの活用術
New2
Next.js
Next.js Server Componentsの基本を完全ガイド!初心者でもわかるNext.js Server Componentsでできること・できないこと
New3
React
Reactでライフサイクルを意識したデータ取得の流れを初心者向けに解説!
New4
React
ReactのカスタムフックでAPIの共通処理をまとめる方法!初心者でもわかる効率的な書き方
人気記事
No.1
Java&Spring記事人気No1
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.2
Java&Spring記事人気No2
Next.js
Next.jsのappディレクトリの役割を完全解説!初心者でもわかるApp Router入門
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.5
Java&Spring記事人気No5
React
ReactのJSXとJavaScriptの違いを完全ガイド!初心者でもわかるReactのJSX入門
No.6
Java&Spring記事人気No6
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.7
Java&Spring記事人気No7
React
useEffectでクリーンアップ関数を使う方法をやさしく解説
No.8
Java&Spring記事人気No8
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介