カテゴリ: 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の条件分岐の使い方を完全ガイド!初心者でもわかる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ローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本