VeeValidate — form validation.
Setup:
1<script setup>2import { useForm, useField } from "vee-validate"3import * as yup from "yup"45const schema = yup.object({6 email: yup.string().email().required(),7 password: yup.string().min(8).required()8})910const { handleSubmit } = useForm({ validationSchema: schema })11const { value: email, errorMessage: emailError } = useField("email")12const { value: password } = useField("password")1314const onSubmit = handleSubmit((values) => {15 console.log(values)16})17</script>1819<template>20 <form @submit="onSubmit">21 <input v-model="email" />22 <span>{{ emailError }}</span>23 <input v-model="password" type="password" />24 <button type="submit">Submit</button>25 </form>26</template>
Key: VeeValidate for validation.