カテゴリ: React 更新日: 2025/12/29

Reactでデフォルト動作を止める!preventDefaultの使い方を初心者向けに解説

デフォルト動作のキャンセル(preventDefault)の基本
デフォルト動作のキャンセル(preventDefault)の基本

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

生徒

「先生、Reactでフォームの送信を止めたい時ってどうしたらいいですか?」

先生

「そのときはpreventDefaultを使います。フォームの送信などブラウザがデフォルトで行う動作をキャンセルできます。」

生徒

「デフォルト動作って具体的に何ですか?」

先生

「例えばリンクをクリックするとページが移動する、フォームを送信するとページがリロードされる、などブラウザが自動で行う動作のことです。」

生徒

「なるほど、ではReactで使う例を見せてください。」

先生

「もちろんです。フォーム送信をキャンセルする例を見てみましょう。」

1. preventDefaultの基本的な使い方

1. preventDefaultの基本的な使い方
1. preventDefaultの基本的な使い方

Reactではフォームの送信やリンククリックなど、ブラウザが自動で行う動作をキャンセルしたいときがあります。例えば、フォームの送信ボタンを押してもページをリロードせずにJavaScriptで処理をしたい場合です。そんなときにevent.preventDefault()を使います。


import React from "react";

function App() {
  const handleSubmit = (event) => {
    event.preventDefault();
    alert("フォーム送信をキャンセルしました!");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" placeholder="名前を入力" />
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(送信ボタンを押してもページはリロードされず、アラートだけが表示されます)

2. preventDefaultを使う理由

2. preventDefaultを使う理由
2. preventDefaultを使う理由

Reactではフォーム送信やリンククリックを直接処理したいケースがあります。通常、フォームを送信するとページがリロードされてデータが消えてしまうことがあります。preventDefaultを使うことで、データを保持しつつ処理を行うことができ、ユーザー体験を向上させることができます。

また、リンククリックでもpreventDefaultを使うことで、ページ遷移をせずにモーダル表示や画面内のコンテンツ切り替えなどを実現できます。

3. 応用例:リンククリックのキャンセル

3. 応用例:リンククリックのキャンセル
3. 応用例:リンククリックのキャンセル

リンクタグは通常クリックすると指定URLに移動します。しかし、Reactでは移動せずにJavaScriptで処理をしたいことがあります。その場合もpreventDefaultを使います。


import React from "react";

function App() {
  const handleClick = (event) => {
    event.preventDefault();
    alert("リンクのデフォルト動作をキャンセルしました!");
  };

  return (
    <a href="https://example.com" onClick={handleClick}>
      クリックしてもページは移動しません
    </a>
  );
}

export default App;
(リンクをクリックしてもページは移動せず、アラートが表示されます)

4. 注意点

4. 注意点
4. 注意点

preventDefaultは便利ですが、必要な場合だけ使うようにしましょう。全てのフォーム送信やリンククリックで使うと、ユーザーが本来行いたい動作までキャンセルしてしまう可能性があります。また、ReactではSyntheticEventという独自のイベントオブジェクトを使っていますが、preventDefaultは通常のDOMイベントと同じように使えます。

これにより、フォームバリデーションや画面遷移の制御など、より柔軟なイベント処理が可能になります。

5. ボタンクリック時のpreventDefaultの使いどころ

5. ボタンクリック時のpreventDefaultの使いどころ
5. ボタンクリック時のpreventDefaultの使いどころ

Reactでは、フォーム内のボタンをクリックした際にもブラウザのデフォルト動作が発生することがあります。 特にbuttonタグは、type属性を指定しない場合、自動的に送信ボタンとして扱われることがあるため注意が必要です。 意図せずフォーム送信が行われるケースでは、クリックイベント内でpreventDefaultを使うことで動作を制御できます。

このような場面では、Reactのイベントハンドラを使ってユーザー操作を正確に管理することが重要です。 クリック処理と画面更新を分けて考えることで、意図したユーザーインターフェースを実現できます。

6. preventDefaultとReactのイベントハンドリングの関係

6. preventDefaultとReactのイベントハンドリングの関係
6. preventDefaultとReactのイベントハンドリングの関係

Reactでは、ブラウザのイベントをそのまま使うのではなく、SyntheticEventという仕組みを通してイベントを扱います。 そのため、Reactでのイベント処理は統一された書き方ができ、ブラウザ間の差異を意識せずに開発が進められます。 preventDefaultも、このイベントオブジェクトを通じて利用できます。

フォーム送信、クリック、キーボード入力など、さまざまなユーザー操作に対して同じ考え方でイベント制御が可能です。 ReactのイベントハンドリングとpreventDefaultを組み合わせることで、より安定した画面制御が行えるようになります。

7. 実務でよくあるpreventDefaultの活用シーン

7. 実務でよくあるpreventDefaultの活用シーン
7. 実務でよくあるpreventDefaultの活用シーン

実際のReact開発では、preventDefaultはログインフォームや検索フォーム、ページ内リンクなどで頻繁に使われます。 入力内容を確認してから処理を進めたい場合や、画面を切り替えずに結果を表示したい場合に特に効果的です。

このような場面でデフォルト動作を正しく止められるかどうかは、Reactアプリケーションの使いやすさに直結します。 基本的な使い方を理解し、必要な場面で適切にpreventDefaultを使うことが、React初心者から一歩成長するためのポイントです。

まとめ

まとめ
まとめ

preventDefaultで理解するReactのイベント制御

ここまで、ReactにおけるpreventDefaultの使い方について、フォーム送信やリンククリックを例にしながら学んできました。 Reactでアプリケーションを作成する際、ユーザーの操作に応じたイベント処理は非常に重要な要素です。 特にフォームやリンクは、ブラウザがもともと持っているデフォルト動作があるため、そのまま使うとページ遷移やリロードが発生し、 状態管理や画面制御が難しくなることがあります。 preventDefaultを正しく使うことで、Reactらしいシングルページアプリケーションの挙動を実現できるようになります。

フォーム送信では、送信ボタンを押した瞬間にページが更新されるのが通常の動作です。 しかし、Reactでは入力値をstateで管理し、送信時にバリデーションや非同期通信を行うケースが多くあります。 そのような場面でpreventDefaultを使うことで、ページの再読み込みを防ぎ、 入力内容を保持したまま処理を続けることができます。 これは、ユーザー体験を向上させるうえで欠かせない考え方です。

また、リンククリックにおいてもpreventDefaultは重要です。 通常のaタグはクリックすると別ページへ遷移しますが、 Reactでは画面内の表示切り替えやモーダル表示など、 ページ遷移を伴わない操作を実装することがよくあります。 その際にデフォルト動作を止めることで、JavaScriptによる柔軟な制御が可能になります。 Reactのイベント処理は、ユーザー操作と画面表示を結びつける大切な仕組みであることを理解しておきましょう。

まとめとしてのサンプルプログラム

ここでは、これまでの内容を踏まえたシンプルなサンプルプログラムを改めて確認します。 フォーム送信時にpreventDefaultを使い、Reactでイベントを制御する基本的な形です。 実際の開発でもよく使われる構造なので、しっかりとイメージをつかんでおきましょう。


import React from "react";

function App() {
  const handleSubmit = (event) => {
    event.preventDefault();
    console.log("Reactでフォーム送信を制御しています");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" placeholder="テキストを入力" />
      <button type="submit">送信</button>
    </form>
  );
}

export default App;

このように、onSubmitイベントの中でpreventDefaultを呼び出すことで、 ブラウザのデフォルト動作を止めつつ、React側で自由に処理を記述できます。 フォームバリデーション、API通信、画面更新など、 実務でも頻繁に登場する重要なパターンです。

先生と生徒の振り返り会話

生徒

「今回のまとめで、Reactではフォームやリンクの動作をそのまま使うのではなく、 preventDefaultで制御することが大切だと分かりました。」

先生

「そうですね。Reactは画面をJavaScriptで管理する考え方なので、 ブラウザの自動動作を理解したうえで必要に応じて止めることが重要です。」

生徒

「フォーム送信でページがリロードされる理由や、 それを止める意味がやっと理解できました。」

先生

「とても良い理解です。preventDefaultを使うことで、 Reactらしいイベント処理やユーザー体験を作れるようになります。」

生徒

「これからは、なぜデフォルト動作を止めるのかを考えながら、 Reactのコードを書いてみます。」

先生

「その意識がとても大切です。Reactのイベント処理を正しく理解すれば、 フォームやリンクだけでなく、さまざまなUI操作にも応用できますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Reactでフォーム送信をキャンセルするにはどうすればいいですか?

Reactではフォーム送信をキャンセルしたい場合、event.preventDefault()を使うことでブラウザのデフォルト動作であるページリロードを防ぐことができます。
カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.6
Java&Spring記事人気No6
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.7
Java&Spring記事人気No7
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介