【Vuelidate】バリデーションチェックの後にAxiosを使用しHTTPリクエストを実行する。

今回は、Vue.jsのバリデーションライブラリであるVuelidateについて、
バリデーションチェック後にaxiosを使用してサーバサイドへ処理をリクエストする方法を記します。

バリデーションのチェックで全ての項目で成功した場合のみ
処理を投げるようにします。

バリデーションチェックの後、成功時にサーバサイドへリクエストをする方法

※処理は最小限に記します。
スクリプト内は以下をご参照ください。

【Vuelidate】バリデーションエラーを任意の文字列(日本語)に変更する方法。
今回は、Vuelidateを使ったフォームバリデーションについて、 エラー内容を任意のメッセージに変更する方法を記します。 Vuelidateは、英語や日本語のエラー文字列を備えているものの、 汎用的な内容のため、変更したいと思うことがあ...

 

<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も触ってみたいなと思います。

 

コメント

スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました