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

Next.js Client Componentsでイベントハンドリングを完全解説!初心者でもわかる使いどころと基本

Next.js Client Componentsでイベントハンドリングを行う方法
Next.js Client Componentsでイベントハンドリングを行う方法

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

生徒

「Next.jsって、ボタンを押したり入力したりできますか?」

先生

「できます。そのために使うのがClient Componentsです。」

生徒

「Server Componentsとは何が違うんですか?」

先生

「画面の操作やイベントを扱えるのがClient Componentsです。具体例を見ながら説明しますね。」

1. Next.js Client Componentsとは何か

1. Next.js Client Componentsとは何か
1. Next.js Client Componentsとは何か

Next.jsのClient Componentsとは、ブラウザ上で動作し、ユーザーの操作に反応できるコンポーネントです。 クリック、入力、マウス操作など、人が画面で行う行動をプログラムで受け取れます。 たとえるなら、Server Componentsは「印刷されたチラシ」、Client Componentsは「リモコン付きのおもちゃ」です。 操作できるかどうかが大きな違いになります。

Client Componentsを使うときは、ファイルの先頭に"use client"と書く必要があります。 これが「この部品は操作できるよ」という目印になります。

2. イベントハンドリングとは

2. イベントハンドリングとは
2. イベントハンドリングとは

イベントハンドリングとは、「何かが起きたときに処理をすること」です。 ボタンを押した、文字を入力した、チェックを入れた、これらすべてがイベントです。 Next.jsではReactの仕組みを使って、イベントを簡単に扱えます。 難しく考えず、「操作をきっかけに動く仕組み」と覚えてください。

3. ボタンのクリックイベントを扱う

3. ボタンのクリックイベントを扱う
3. ボタンのクリックイベントを扱う

もっとも基本的なのが、ボタンを押したときの処理です。 ここでは、文字が変わるシンプルな例を見てみます。


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

export default function ClickSample() {
  const [text, setText] = useState("まだ押されていません");

  return (
    <div>
      <p>{text}</p>
      <button onClick={() => setText("ボタンが押されました")}>
        押してみる
      </button>
    </div>
  );
}
(画面に文字が表示され、ボタンを押すと表示内容が変わります)

4. 入力フォームのイベントを扱う

4. 入力フォームのイベントを扱う
4. 入力フォームのイベントを扱う

次は、文字を入力したときのイベントです。 フォームは、名前入力や検索など、よく使われる場面です。 入力内容をそのまま画面に表示してみましょう。


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

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

  return (
    <div>
      <input
        type="text"
        value={name}
        onChange={(e) => setName(e.target.value)}
      />
      <p>入力された名前:{name}</p>
    </div>
  );
}
(文字を入力すると、その内容がすぐ下に表示されます)

5. チェックボックスで状態を切り替える

5. チェックボックスで状態を切り替える
5. チェックボックスで状態を切り替える

チェックボックスは、オンとオフを切り替える操作です。 状態が変わるたびに表示を切り替えることができます。 これは設定画面などでよく使われます。


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

export default function CheckSample() {
  const [checked, setChecked] = useState(false);

  return (
    <div>
      <label>
        <input
          type="checkbox"
          checked={checked}
          onChange={() => setChecked(!checked)}
        />
        同意する
      </label>
      <p>{checked ? "同意済み" : "未同意"}</p>
    </div>
  );
}
(チェックを入れると表示が切り替わります)

6. Client Componentsを使うべき場面

6. Client Componentsを使うべき場面
6. Client Componentsを使うべき場面

Client Componentsは便利ですが、何でも使えばよいわけではありません。 画面に表示するだけならServer Componentsで十分です。 クリック、入力、切り替えなど、人の操作が必要なときにClient Componentsを使います。 役割を分けることで、Next.jsの性能を活かせます。

7. Server Componentsとの役割の違い

7. Server Componentsとの役割の違い
7. Server Componentsとの役割の違い

Server Componentsは、データを取得して表示するのが得意です。 Client Componentsは、画面操作と状態管理が得意です。 たとえるなら、Server Componentsは料理人、Client Componentsは接客係です。 それぞれの役割を理解することで、無理のない構成になります。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

よくある失敗は、"use client"を書き忘れることです。 これがないと、イベントが動きません。 また、すべてをClient Componentsにすると表示が遅くなる場合もあります。 操作が必要な部分だけに使うことが大切です。

カテゴリの一覧へ
新着記事
New1
React
Reactでよくある型エラーと解決法をやさしく解説!初心者でも安心できる型安全な考え方
New2
Next.js
Next.js App Router入門!App RouterとPages Routerの根本的な違いを初心者向けに徹底解説
New3
Next.js
Next.js MetadataとSEO設定の完全ガイド!初心者でもわかるNext.jsのapp routerのSEO基盤
New4
Next.js
Next.jsでLinkを使ってクエリパラメータを渡す方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
React Context APIのデバッグ方法を完全解説!React DevToolsで中身を丸見えにする方法
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.5
Java&Spring記事人気No5
React
React Routerとは?シングルページアプリのルーティングを初心者向けにわかりやすく解説
No.6
Java&Spring記事人気No6
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介
No.7
Java&Spring記事人気No7
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.8
Java&Spring記事人気No8
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!