今回は、Vue.jsのバリデーションライブラリであるVuelidateについて、
バリデーションチェック後にaxiosを使用してサーバサイドへ処理をリクエストする方法を記します。
バリデーションのチェックで全ての項目で成功した場合のみ
処理を投げるようにします。
バリデーションチェックの後、成功時にサーバサイドへリクエストをする方法
※処理は最小限に記します。
スクリプト内は以下をご参照ください。
<v-text-field v-model="state.id" variant="solo"></v-text-field> <v-btn class="me-4" @click="post(v$.$validate)"> 送信 </v-btn> <script> export default { const post = (validate) => { return validate().then( (promiseResult)=>{ if(promiseResult){ request(); } }) } const request = async() => { await axios.post(url,data) .then(async(res)=>{ }) } return { ...他, post } } </script>
多くの必要なコードを省き、バリデーションのチェック以降の処理のみ記しました。
具体的に、ボタンをクリックした際、post関数にv$.$validateを引数として実行します。
click="post(v$.$validate)
v$.$validateは、非同期処理のコールバック関数です。
フォーム内の全てのバリデーションルールに成功するとtrueを返します。
一方で一つでも失敗するとfalseを返します。
validate().then( (promiseResult)=>{ if(promiseResult){ request(); } })
promiseResultはboolean型で、前述したバリデーションの結果です。
もし、成功した場合は、request関数を実行するように書いてます。
そして、request内に、axiosでHTTPリクエストを送ります。
const request = async() => { await axios.post(url,data) .then( async(res)=>{ }) }
おわりに
今回は、Vuelidateを使用して、バリデーションチェックの後に
Axiosを使用しHTTPリクエストを実行する方法を記しました。
話はそれますが、Vueのバリデーションライブラリを調べてみると
vee-validate vuelidateは、二大巨頭なようです。
私は、今回初めてvuelidateを使用し、vee-validateは使ったことがありません。
そのため、表面的にしか分かりませんが、ドキュメント的には、vuelidateの方が
私好みです。。
ただ、vee-validate vuelidateをそれぞれググると
vee-validateの方が使っている人が多そうな印象でした。
私がvuelidateを使っている理由は、刷り込みみたいなもので、
一度はvee-validateも触ってみたいなと思います。
コメント