Фреймворк Vue.js имеет множество плагинов, которые можно использовать для реализации проверки формы внешнего интерфейса. Один из них - VeeValidate. VeeValidate можно использовать для создания расширенной проверки. Это связано с тем, что он имеет встроенные правила проверки для разных типов полей. В этой статье показано, как использовать VeeValidate и Vue для реализации проверки формы.

Шаг 1. Создайте новый проект Vue под названием RegisterApp. Прочтите настройку Vue Project здесь.

vue create RegisterApp

Шаг 2: Установите VeeValidate в RegisterApp. Прочтите здесь, чтобы узнать о настройке VeeValidate

cd RegisterApp
npm install vee-validate --save

Шаг 3: в файле main.js зарегистрируйте ValidationProvider глобально с помощью Vue.component () функция.

import { ValidationProvider } from 'vee-validate';
import { ValidationObserver } from 'vee-validate';
Vue.component('ValidationProvider', ValidationProvider);

Шаг 4: Затем установите все доступные правила. Прочтите здесь, чтобы найти доступные роли

import { ValidationProvider } from 'vee-validate/dist/vee-validate.full.esm';

Окончательный файл main.js должен выглядеть так.

import Vue from 'vue'
import App from './App.vue'
import { ValidationObserver } from 'vee-validate'
import { ValidationProvider } from 'vee-validate/dist/vee-validate.full.esm';
Vue.component('ValidationProvider', ValidationProvider);
Vue.config.productionTip = false
new Vue({
  render: h => h(App),
}).$mount('#app')

Шаг 5: в папке components / создайте компонент с именем RegisterForm.vue.

<template>
 <div>
 <h2>VeeValidate Form</h2>

</div>
</template>
<script>
  export default {
   data: () => (),
  methods: {
    
  }
}}
</script>

Шаг 6: В разделе ‹script› ‹/script› создайте имя, фамилию, электронная почта и пароль как свойства данных.

<script>
  export default {
   data: () => ({
  
       name: '',
       email: '',
       password: '',
   
  }),
  methods: {
   
  }
}}
</script>

Шаг 7. В разделе ‹template› ‹/template› создайте форму и оберните ее в ValidationObserver.

<template>
 <div>
 <h2>VeeValidate Form</h2>
 <ValidationObserver v-slot="{ handleSubmit }">
    <form @submit.prevent="handleSubmit(onSubmit)">
    </form>
</ValidationObserver>
</div>
</template>

Шаг 8: Создайте поля для имени, фамилии, электронной почты и пароля. Оберните каждый ввод компонентом ValidationProvider, который действует как валидатор для ваших полей .

<template>
 <div>
 <h2>VeeValidate Form</h2>
 <ValidationObserver v-slot="{ handleSubmit }">
 <form @submit.prevent="handleSubmit(onSubmit)">
<ValidateProvider name="firstname" rules="required|alpha" v-slot="{ errors }">
<div>
  <label>Firstname</label>
  <input type="text" v-model="firstname">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="lastname" rules="required|alpha" v-slot="{ errors }">
<div>
  <label>Lastname</label>
  <input type="text" v-model="lastname">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="email" rules="required|email" v-slot="{ errors }">
<div>
  <label>Email</label>
  <input type="email" v-model="email">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="password" rules="required" v-slot="{ errors }">
<div>
  <label>Password</label>
  <input type="password" v-model="password">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<input type="submit" text="Submit">
</form>
</ValidationObserver>
</div>
</template>

Окончательный вариант RegisterForm.vue должен выглядеть следующим образом.

<template>
 <div>
 <h2>VeeValidate Form</h2>
 <ValidationObserver v-slot="{ handleSubmit }">
 <form @submit.prevent="handleSubmit(onSubmit)">
<ValidateProvider name="firstname" rules="required|alpha" v-slot="{ errors }">
<div>
  <label>Firstname</label>
  <input type="text" v-model="formData.firstname">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="lastname" rules="required|alpha" v-slot="{ errors }">
<div>
  <label>Lastname</label>
  <input type="text" v-model="formData.lastname">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="email" rules="required|email" v-slot="{ errors }">
<div>
  <label>Email</label>
  <input type="text" v-model="formData.email">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<ValidateProvider name="password" rules="required|alpha" v-slot="{ errors }">
<div>
  <label>Password</label>
  <input type="text" v-model="formData.password">
  <span>{{ errors[0] }}</span>
</div>
</ValidationProvider>
<input type="submit" text="Submit">
</form>
</ValidationObserver>
</div>
</template>
<script>
  export default {
   data: () => ({
  
       name: '',
       email: '',
       password: '',
   
  }),
  methods: {
    onSubmit(){
      console.log(this.formData);
  }
}}
</script>

Шаг 9: Импортируйте RegisterForm.vue в App.vue.

<template>
  <div id="app">
  <RegisterForm />
  </div>
</template>
<script>
import RegisterForm from "./components/RegisterForm";
export default {
  name: "App",
  components: {
     RegisterForm
  }
}
</script>
<style></style>

Запустите приложение

И вот оно. Надеюсь, вы нашли это полезным. Я вернусь с более интересными статьями. Спасибо за чтение.

Больше контента на plainenglish.io