Simple use of Vue vee-validate plug-in

Simple use of Vue vee-validate plug-in

1. Installation

2. Import

import { Form, Field } from 'vee-validate'

3. Define validation rules (it is best to package the js file separately in the utils folder for export)

// Create a js file for export export default {
  // Verify item account
  account(value) {
    if (!value) return 'cannot be empty' // conditional judgment,
    return true // Finally, all passed must return true
  },
  password (value) {
    if (!value) return 'Please enter your password'
    if (!/^\w{6,24}$/.test(value)) return 'The password is 6-24 characters'
    return true
  },
  mobile (value) {
    if (!value) return 'Please enter your phone number'
    if (!/^1[3-9]\d{9}$/.test(value)) return 'The phone number format is incorrect'
    return true
  },
  code (value) {
    if (!value) return 'Please enter the verification code'
    if (!/^\d{6}$/.test(value)) return 'The verification code is 6 digits'
    return true
  },
  isAgree (value) {
    if (!value) return 'Please check to agree to the user agreement'
    return true
  }
}

4. Use the Form component to configure validation rules and error objects (both form and Field are exported from the plugin on demand)

// validation-schema="mySchema" configures validation rules // v-slot: export error object <Form
  :validation-schema="mySchema"
  v-slot="{ errors }"
>
 <!-- Form elements -->
</Form>

<script>
  import schema from '@/utils/vee-validate-schema'
  setup () {
    // Form object data const form = reactive({
      account: null, // account password: null // password })
    // Validation rule object const mySchema = {
      account: schema.account,
      password: schema.password
    }
    return { form, mySchema }
 } 
</script>

5. Use the Field component to add form item verification

//1. Change input to `Field` component, which is parsed as input by default
//2. `Field` adds the name attribute to specify which validation rule in the schema to use //3. `Field` adds v-model to provide two-way binding of form data //4. When a form validation error occurs, the error class name `error` is displayed, and a red border <Field is displayed
      v-model="form.account"
      name="account" 
      type="text"
      placeholder="Please enter your username"
      :class="{ error: errors.account }" // If an error message is returned, it is true to display the class error
    />
    <!-- <input type="text" placeholder="Please enter your username" /> -->

6. Supplement form data and validation rule data

// Data bound to the form const form = reactive({
  account: null, // account password: null, // password isAgree: true // whether it is selected})

// Declare the validation data rules required for the current form const curSchema = reactive({
  account: schema.account, // account password: schema.password, // password isAgree: schema.isAgree // whether selected})

The above is the detailed content of the simple use of Vue vee-validate plug-in. For more information about Vue vee-validate plug-in, please pay attention to other related articles on 123WORDPRESS.COM!

You may also be interested in:
  • Detailed tutorial on using the vue.js form validation plugin (vee-validate)
  • Using Vee-validate form validation in Vue.js + Nuxt.js project
  • vee-validate vue 2.0 custom form validation example
  • How to use vee-validate form validation in Vue
  • Detailed explanation of the use of Vue2.0 form validation component vee-validate

<<:  SQL statements in Mysql do not use indexes

>>:  web.config (IIS) and .htaccess (Apache) configuration

Recommend

CSS polar coordinates example code

Preface The project has requirements for charts, ...

Centos7.5 installs mysql5.7.24 binary package deployment

1. Environmental preparation: Operating system: C...

Solution to transparent font problem after turning on ClearType in IE

The solution to the transparent font problem after...

A brief analysis of MySQL locks and transactions

MySQL itself was developed based on the file syst...

Example of troubleshooting method to solve Nginx port conflict

Problem Description A Spring + Angular project wi...

How to solve the Mysql transaction operation failure

How to solve the Mysql transaction operation fail...

vue dynamic component

Table of contents 1. Component 2. keep-alive 2.1 ...

MySQL 5.7.17 compressed package installation-free configuration process diagram

There are two versions of MySQL database manageme...

Mysql table creation foreign key error solution

Database Table A: CREATE TABLE task_desc_tab ( id...

MySQL reports an error: Can't find file: './mysql/plugin.frm' solution

Find the problem Recently, I found a problem at w...

A few things about favicon.ico (it’s best to put it in the root directory)

Open any web page: for example, http://www.baidu....

Elementui exports data to xlsx and excel tables

Recently, I learned about the Vue project and cam...

Summary of 10 amazing tricks of Element-UI

Table of contents el-scrollbar scroll bar el-uplo...