Reactでライブラリを活用したフォーム管理!初心者でもわかるReact Hook Form導入ガイド
生徒
「Reactでフォームを作ると、コードがどんどん長くなってしまいます…」
先生
「フォームは管理する項目が増えると大変になりますね」
生徒
「もっと楽にフォームを管理する方法はないんですか?」
先生
「そんなときに役立つのが、React Hook Formというライブラリです」
1. フォーム管理が難しくなる理由
Reactでフォームを作るとき、入力欄が増えるたびに状態も増えていきます。 その結果、同じようなコードが何度も登場し、全体が読みにくくなります。
これは、紙の申込書に項目が増えすぎて、 どこに何を書いたのか分からなくなる状態に似ています。
2. React Hook Formとは何か
React Hook Formは、フォーム入力をまとめて管理してくれるライブラリです。 ライブラリとは、便利な道具箱のようなものだと考えると分かりやすいです。
難しい処理を自分で書かなくても、 最低限のコードでフォームを動かせるのが特徴です。
3. React Hook Formの基本的な使い方
まずは、React Hook Formを使った一番シンプルなフォームを見てみましょう。 useFormという仕組みを使うことで、入力内容を簡単に扱えます。
import React from "react";
import { useForm } from "react-hook-form";
function App() {
const { register, handleSubmit } = useForm();
const onSubmit = (data) => {
alert(data.name);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("name")} />
<button type="submit">送信</button>
</form>
);
}
export default App;
registerは、入力欄をフォーム管理に登録するためのものです。 handleSubmitは、送信時の処理をまとめて管理してくれます。
4. 複数入力欄をまとめて管理する
React Hook Formの強みは、入力欄が増えてもコードが増えにくい点です。 複数の項目でも、同じ書き方で対応できます。
import React from "react";
import { useForm } from "react-hook-form";
function App() {
const { register, handleSubmit } = useForm();
const onSubmit = (data) => {
alert(data.name + " / " + data.email);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("name")} placeholder="名前" />
<input {...register("email")} placeholder="メール" />
<button type="submit">送信</button>
</form>
);
}
export default App;
dataの中には、入力された情報が一つの箱に入った状態で渡されます。 これにより、管理がとても楽になります。
5. 入力チェックを簡単に追加する
フォームでは、入力されていないと困る項目があります。 React Hook Formでは、簡単な指定だけで入力チェックができます。
import React from "react";
import { useForm } from "react-hook-form";
function App() {
const { register, handleSubmit } = useForm();
const onSubmit = (data) => {
alert(data.name);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("name", { required: true })} />
<button type="submit">送信</button>
</form>
);
}
export default App;
requiredは「必ず入力してください」という意味です。 ルールを追加するだけで、入力ミスを防げます。
6. フォームの状態をまとめて扱うメリット
React Hook Formを使うと、入力内容や送信状態を一か所で管理できます。 これは、書類を一つのファイルにまとめる感覚に近いです。
コードが短くなり、読みやすくなることで、 初心者でも安心してフォーム処理に取り組めます。
7. ライブラリを使うときの考え方
ライブラリは、難しい部分を助けてくれる存在です。 ただし、仕組みを知らずに使うと、後で困ることもあります。
シンプルなフォームを理解したうえで、 React Hook Formを使うことで、より安全で分かりやすい開発ができます。