VueValidate
Inputフォームなどのユーザー入力のバリデーションをやってくれるライブラリのようです。
Ver3
Qiitaの記事とかで見つけたのですが、
そのときの記事はVer2系だったようで、Ver3では随分と書き方が変わっているようで、メモしておきます
インストール
yarn add vee-validate
Vueへの登録
import { ValidationProvider } from 'vee-validate'; export default { components: { ValidationProvider } };
このように、コンポーネントとしてimportします。(helloWorld.vueなどで個別にインポートする)
単一ファイルコンポーネントそれぞれ使うタイミングでインポートすればOKということのようです。(これが公式推奨)
しかしながら、自分はグローバルにimportしました。
import { ValidationProvider } from 'vee-validate'; Vue.component('ValidationProvider', ValidationProvider);
これをmain.js
に記載しました。
ルールのインポート
ルールはデフォルトでは何もインポートされていません。
必要なルールだけを必要なだけインポートするようです(容量を小さく抑えるための施策のようです)
import { extend } from 'vee-validate'; import { required, email } from 'vee-validate/dist/rules'; // No message specified. extend('email', email); // Override the default message. extend('required', { ...required, message: 'This field is required' });
使い方というと、
<ValidationProvider name="email" rules="required|email" v-slot="{ errors }"> <input v-model="email" type="text"> <span>{{ errors[0] }}</span> </ValidationProvider>
このように、importしたコンポーネントでinput
を囲うように使用します。
これでemailのルールが適用されます。
非常に便利