Agile育成ブログ
未来を変える喜びを
未分類

フォームのバリデーション Yupとzod


Warning: count(): Parameter must be an array or an object that implements Countable in /home/xs638785/agile-software.site/public_html/wp-content/plugins/rich-table-of-content/functions.php on line 490

Yup

Yupはバリデーションのためのライブラリです。
各フォーム項目ごとに異なるバリデーションを定義していきます。
宣言的で大変わかりやすいバリデーションが可能です。

任意のエラーメッセージを扱う

import * as yup from 'yup';

const schema = yup.object().shape({
  name: yup.string().required('名前は必須項目です'),
  age: yup.number('年齢は数値で入力してください') // (1)
    .required('年齢は必須項目です')
    .positive('正の数を指定してください')
    .integer('整数で指定してください'),
  email: yup.string().email('メールアドレスの形式が不正です'),
});

schema
  .validate({
    name: 'Taro',
    age: 'hi', // 数値型ではなく文字列型を渡している
  })
  .catch(function (err) {
    console.log(err.errors); // => ['年齢は数値で入力してください'] // (2)
  });

@hookform/resolvers

yupResolverをimportして、yupで作成したバリデーションとreact-hook-formを接続します。

zod

スキーマを定義し、バリデーションの設定を行うことができます。
また定義したスキーマからTypeScriptの型を生成することができます。

You cannot copy content of this page