Vue 3でのバリデーションエラーの解決方法


  1. バリデーションライブラリの使用: Vue 3では、バリデーションライブラリを使用することで入力値の検証を簡単に行うことができます。一般的なバリデーションライブラリには、VeeValidateやYupなどがあります。これらのライブラリを使用すると、コンポーネント内でルールを定義し、エラーメッセージを表示することができます。

    例:

    <template>
     <div>
       <input v-model="email" />
       <span v-if="errors.email">{{ errors.email[0] }}</span>
     </div>
    </template>
    <script>
    import { defineComponent } from 'vue';
    import { useForm } from 'vee-validate'; // VeeValidateを使用する場合
    export default defineComponent({
     setup() {
       const { errors, validate } = useForm();
       const email = ref('');
       const validateEmail = async () => {
         await validate();
         // カスタムのバリデーションルールを追加する場合は、ここで検証を行う
       };
       return {
         email,
         errors,
         validateEmail,
       };
     },
    });
    </script>
  2. カスタムバリデーション関数の作成: もし独自のバリデーションルールを使用したい場合は、カスタムバリデーション関数を作成することもできます。これにより、入力値を検証し、エラーメッセージを表示することができます。

    例:

    const validateEmail = (value) => {
     if (!value.includes('@')) {
       return '有効なメールアドレスを入力してください。';
     }
     return true;
    };

    使用例:

    const { errors } = useForm();
    const email = ref('');
    watch(email, (value) => {
     const validationResult = validateEmail(value);
     errors.email = Array.isArray(validationResult) ? validationResult : [validationResult];
    });

これらの方法を使用することで、Vue 3におけるバリデーションエラーを解決することができます。適切なバリデーションライブラリを選択し、必要に応じてカスタムバリデーション関数を作成してください。