かつみ
【6章】React実践演習の振り返り
2026年05月14日
要約を生成中...
学んだこと
React Hook FormとZodを使うことで理解を深めることができました。
下記にて今回どのように使用したかと併せてReact Hook FormとZodについてまとめました。
React Hook Form
React Hook Form とは…React専用のフォーム作成のためのライブラリ
フォーム入力値を
useStateで個別管理する必要が減るため、コード量が減り可読性が上がるrefで入力値を管理するため、レンダリングが最小限となり、大規模なフォームでも高速でパフォーマンスが向上する
今回使用した関数やオブジェクトたち
register…入力フォームをRHFに登録する関数<input {...register(”xxx")} />で入力値の管理やバリデーションチェック連携をRHFに紐づけできる
handleSubmit…フォーム送信時の処理(onSubmit)をラップする関数バリデーションチェック
問題がなければ
onSubmitを実行バリデーションエラーがある場合は
formState.errorsが更新される
reset…フォームの値を初期化する関数送信ボタンの送信後の初期化、クリアボタンの初期化に使用
formState…フォーム全体の状態を持つオブジェクト今回はerrorsとisSubmittingを下記のように分割代入で取り出して使用した
formState: { errors, isSubmitting }
errors前述の
handleSubmitで格納されたバリデーションエラーerrors.xxx?.messageで該当の項目にバリデーションエラーメッセージの表示に使用errors.xxxで該当の項目にバリデーションエラーがあるかのフラグとしてエラーメッセージを表示されるかどうかの判断に使用
isSubmitting送信中かどうかを表すフラグ
inputとbuttonのdisabled制御に使用
Zod
Zod とは…Typescriptの型定義と同じ形式で、データ構造の検証を行ってくれるライブラリ
スキーマを定義することによってバリデーションルールの設定と型推論を同時にできる
RHFだけでもバリデーションチェックはできるがzodと組み合わせることでフォーム制御とバリデーションの責務を分離できるため、複雑な検証条件を指定しているときのコードの可読性が向上する
下記のようにRHFのuseFormのオプションであるresolverに宣言したスキーマを渡すことでRHFとZodで連携ができる
useForm({resolver: zodResolver(XxxSchema),});
気づき・感想
以前チートシートとにらめっこしてスタイルをあてていた記憶があったので、かなり手間だなとTailwind cssに抵抗感があったのですが、bg-[#333] のように[]内に数値を入れればスタイルがあたるし、この値なら既にこの登録があるよと推論してくれること気付いたのでこれなら無理なく使えるなと思いました。
また前の現場のコーダーの方がトンマナから外れるのが嫌だからと汎用コンポーネントは限定的であるほど良いという方針だったのでComponentProps を使用するという発想がありませんでした。
今後は保守性を鑑みてComponentProps を積極的に使用していこうと思います!




