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

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

Next.js Server ComponentsとClient Componentsの明確な違い
Next.js Server ComponentsとClient Componentsの明確な違い

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

生徒

「Next.jsにはServer ComponentsとClient Componentsがあると聞いたのですが、何が違うんですか?」

先生

「Next.jsでは、動かす場所によって役割が分かれています。」

生徒

「動かす場所って、パソコンの中のどこですか?」

先生

「それでは、Server ComponentsとClient Componentsの違いを、基本から説明していきます。」

1. Next.jsとは何かを超かんたんに説明

1. Next.jsとは何かを超かんたんに説明
1. Next.jsとは何かを超かんたんに説明

Next.js(ネクストジェイエス)は、WebサイトやWebアプリを作るための道具です。 Webサイトとは、ブラウザで見るページのことです。ブラウザとは、ChromeやSafariなどのことを指します。 Next.jsを使うと、表示が速く、検索にも強いWebサイトを作ることができます。

Next.jsは、JavaScriptというプログラミング言語を使って書きます。 JavaScriptとは、ボタンを押したときに動きをつけたり、文字を変えたりできる言語です。

2. Server Componentsとは何か

2. Server Componentsとは何か
2. Server Componentsとは何か

Server Components(サーバーコンポーネント)とは、サーバー側で動く部品のことです。 サーバーとは、インターネットの向こう側にある高性能なコンピュータです。 私たちのパソコンの代わりに、重たい処理をしてくれます。

たとえるなら、レストランのキッチンがサーバーです。 料理はキッチンで作られて、お客さんの席に運ばれます。 Server Componentsは、完成した画面を作ってから、ブラウザに送ります。

3. Client Componentsとは何か

3. Client Componentsとは何か
3. Client Componentsとは何か

Client Components(クライアントコンポーネント)は、あなたのパソコンやスマホで動く部品です。 ブラウザの中で動き、ボタン操作や画面の切り替えを担当します。

レストランで例えると、お客さんの席でメニューを選んだり、ボタンを押して注文する行動がClient Componentsです。 すぐに反応が必要な動きに向いています。

4. Server ComponentsとClient Componentsの一番大きな違い

4. Server ComponentsとClient Componentsの一番大きな違い
4. Server ComponentsとClient Componentsの一番大きな違い

一番の違いは、「どこで動くか」です。 Server Componentsはサーバーで動き、Client Componentsはブラウザで動きます。

Server Componentsは、データの取得や重たい計算が得意です。 Client Componentsは、クリックや入力などの操作が得意です。 Next.jsでは、この2つを使い分けることで、速くて使いやすいWebサイトを作れます。

5. Server Componentsのシンプルなサンプル

5. Server Componentsのシンプルなサンプル
5. Server Componentsのシンプルなサンプル

export default function Page() {
  return <h1>これはServer Componentです</h1>;
}
(画面に「これはServer Componentです」と表示されます)

特別な設定を書いていない場合、Next.jsでは自動的にServer Componentsになります。 データを表示するだけの画面に向いています。

6. Client Componentsの基本的な書き方

6. Client Componentsの基本的な書き方
6. Client Componentsの基本的な書き方

"use client";

import { useState } from "react";

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

  return (
    <button onClick={() => setCount(count + 1)}>
      クリック数:{count}
    </button>
  );
}
(ボタンを押すたびに数字が増えて表示されます)

「use client」と書くことで、この部品はClient Componentsになります。 useStateとは、数字や文字を覚えておくための仕組みです。

7. Server ComponentsとClient Componentsを組み合わせる例

7. Server ComponentsとClient Componentsを組み合わせる例
7. Server ComponentsとClient Componentsを組み合わせる例

import Counter from "./Counter";

export default function Page() {
  return (
    <div>
      <h1>サーバーで作った画面</h1>
      <Counter />
    </div>
  );
}
(見出しは最初から表示され、ボタンはクリックで動きます)

Server Componentsの中でClient Componentsを使うことができます。 これにより、表示は速く、操作は快適になります。

8. 初心者が覚えておくべき考え方

8. 初心者が覚えておくべき考え方
8. 初心者が覚えておくべき考え方

最初は、「表示するだけならServer Components」「動かしたいならClient Components」と覚えてください。 難しく考えなくても、Next.jsが多くを助けてくれます。

Server ComponentsとClient Componentsの違いを理解することは、 Next.jsの基本を理解することにつながります。 ゆっくり何度も読み返しながら、感覚をつかんでいきましょう。

カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方
No.8
Java&Spring記事人気No8
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本