Vue.jsでのフォーム管理術:Vuelidateを活用する

フォームのバリデーションは、ユーザー入力を正確かつ安全に処理するために不可欠です。本記事では、Vue.jsでVuelidateを活用して効果的なフォーム管理を行う方法を解説します。
目次
1. Vuelidateのインストール
Vuelidateをプロジェクトに追加します。
npm install @vuelidate/core @vuelidate/validators
2. 基本的なバリデーションルール
簡単な必須フィールドと文字列長のバリデーション。
import useVuelidate from '@vuelidate/core';
import { required, minLength } from '@vuelidate/validators';
export default {
setup() {
const state = reactive({
username: '',
});
const rules = {
username: { required, minLength: minLength(3) },
};
const v$ = useVuelidate(rules, state);
return { state, v$ };
},
};
3. エラーメッセージの表示
エラーメッセージを表示する。
<div>
<input v-model="state.username" />
<span v-if="v$.username.$error">ユーザー名は必須で、3文字以上である必要があります。</span>
</div>
4. 複数フィールドのバリデーション
複数のフィールドをバリデーションします。
const state = reactive({ username: '', email: '' });
const rules = {
username: { required },
email: { required, email },
};
5. カスタムバリデータ
独自のバリデーションルールを作成します。
const isValidUsername = (value) => /^[a-zA-Z0-9]+$/.test(value);
6. 動的なバリデーションルール
ルールを動的に変更します。
if (state.condition) {
rules.username.required = false;
}
7. フォームの送信処理
バリデーション後にフォームを送信します。
const submitForm = () => {
v$.$validate();
if (!v$.$error) {
console.log('フォームが送信されました');
}
};
8. フィールドのリセット
フォームをリセットします。
const resetForm = () => {
state.username = '';
v$.$reset();
};
9. 外部ライブラリとの統合
他のライブラリと連携して拡張。
import { required, maxLength } from '@vuelidate/validators';
10. 条件付きバリデーション
特定の条件下でルールを適用。
if (state.isActive) {
rules.email.required = true;
}
11. エラーハイライト
フィールドにエラーハイライトを適用。
<input v-model="state.username" :class="{'error': v$.username.$error}" />
12. Vue DevToolsでのデバッグ
Vue DevToolsを使用してバリデーションをデバッグ。
app.config.performance = true;
これらのテクニックを使用することで、Vuelidateを活用した強力なフォームバリデーションが実現できます。
-
前の記事
状態管理ライブラリReduxをReactプロジェクトに統合する方法 2025.01.22
-
次の記事
Error: spawn ENOENT の解決方法 2025.01.23
コメントを書く