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

Next.js Client Componentsの使いどころ完全ガイド!初心者でもわかるNext.js Client Componentsが必要なケース一覧

Next.js Client Componentsが必要なケース一覧
Next.js Client Componentsが必要なケース一覧

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

生徒

「Next.jsって聞いたら、Server ComponentsとかClient Componentsとか出てきて混乱しました…」

先生

「Next.jsでは、動く場所によってコンポーネントを使い分けます。」

生徒

「Client Componentsって、どんなときに必要なんですか?」

先生

「それでは、Client Componentsが必要な具体的なケースを順番に見ていきましょう。」

1. Next.jsのClient Componentsとは?

1. Next.jsのClient Componentsとは?
1. Next.jsのClient Componentsとは?

Next.jsのClient Componentsとは、ブラウザ(パソコンやスマホの画面側)で動く部品のことです。 ボタンを押したり、文字を入力したり、その場で画面が変わるような動きは、Client Componentsで実現します。

たとえるなら、Server Componentsは「料理を作る厨房」、Client Componentsは「お客さんの目の前で動く配膳ロボット」です。 ユーザーの操作にすぐ反応する必要がある場合、Client Componentsが必要になります。

2. ボタンやクリック操作がある場合

2. ボタンやクリック操作がある場合
2. ボタンやクリック操作がある場合

クリックして画面の表示を変えたい場合は、Client Componentsが必須です。 これは、ブラウザで状態(データ)を覚えておく必要があるからです。


"use client";
import { useState } from "react";

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

  return (
    <div>
      <p>カウント:{count}</p>
      <button onClick={() => setCount(count + 1)}>
        増やす
      </button>
    </div>
  );
}
(画面に数字が表示され、ボタンを押すたびに数が増えていきます)

3. フォーム入力や文字入力を扱う場合

3. フォーム入力や文字入力を扱う場合
3. フォーム入力や文字入力を扱う場合

名前やメールアドレスを入力するフォームも、Client Componentsが必要です。 入力中の文字をその場で反映したり、チェックしたりするためです。


"use client";
import { useState } from "react";

export default function InputSample() {
  const [name, setName] = useState("");

  return (
    <div>
      <input
        type="text"
        placeholder="名前を入力"
        onChange={(e) => setName(e.target.value)}
      />
      <p>こんにちは、{name}さん</p>
    </div>
  );
}
(文字を入力すると、すぐ下に挨拶文が表示されます)

4. useStateやuseEffectを使う場合

4. useStateやuseEffectを使う場合
4. useStateやuseEffectを使う場合

Next.jsでは、useStateやuseEffectといったReactの仕組みを使う場合、Client Componentsにする必要があります。 これらはブラウザで動く機能だからです。


"use client";
import { useEffect } from "react";

export default function EffectSample() {
  useEffect(() => {
    alert("画面が表示されました");
  }, []);

  return <p>Client Componentsのサンプル</p>;
}

5. ブラウザ専用の機能を使う場合

5. ブラウザ専用の機能を使う場合
5. ブラウザ専用の機能を使う場合

localStorageやwindowなど、ブラウザにしか存在しない機能を使う場合もClient Componentsが必要です。 これらはサーバーでは使えません。


"use client";
export default function BrowserSample() {
  const saveData = () => {
    localStorage.setItem("message", "保存しました");
  };

  return <button onClick={saveData}>保存</button>;
}

6. アニメーションや動きのあるUIを作る場合

6. アニメーションや動きのあるUIを作る場合
6. アニメーションや動きのあるUIを作る場合

表示がふわっと変わる、クリックで表示が切り替わるなどの動きはClient Componentsが得意です。 ユーザーの操作に合わせて、見た目を変えられるからです。

7. Client Componentsが不要なケースも知っておこう

7. Client Componentsが不要なケースも知っておこう
7. Client Componentsが不要なケースも知っておこう

すべてをClient Componentsにする必要はありません。 文字を表示するだけの記事ページや、動きがない部分はServer Componentsのままで問題ありません。 必要な場所だけClient Componentsにすることで、表示が速くなり、Next.jsの強みを活かせます。

8. Client Componentsを使うときの基本ルール

8. Client Componentsを使うときの基本ルール
8. Client Componentsを使うときの基本ルール

Client Componentsを使うときは、ファイルの一番上に「use client」と書くのがルールです。 これを書くことで、「この部品はブラウザで動きます」とNext.jsに伝えられます。

まずは「クリックする」「入力する」「画面が変わる」など、人が操作する場面ではClient Componentsが必要、 と覚えておくと理解しやすくなります。

カテゴリの一覧へ
新着記事
New1
React
ReactのProps Drillingとは?コンテキストAPIで解決する方法を初心者向けに徹底解説
New2
React
Reactのイベントオブジェクト(event)の使い方とよく使うプロパティを初心者向けに解説
New3
React
ReactのContext APIでダークモードを実装!テーマ切り替えの方法を初心者向けに完全解説
New4
React
Reactにおけるイベント処理の基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.6
Java&Spring記事人気No6
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
No.7
Java&Spring記事人気No7
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.8
Java&Spring記事人気No8
React
Reactでネストしたコンポーネントにデータを渡す方法を完全解説!Context APIで深い階層も簡単に