📜  在 vue 中安装 yup - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:51.058000             🧑  作者: Mango

在 Vue 中安装 Yup - Shell / Bash

在 Vue 中实现表单验证非常重要。使用专业的验证库可以大大简化验证过程,减少代码复杂度和错误。Yup是一个优秀的验证库,在React中广泛使用,但也可以在Vue中使用。

本文将介绍如何在Vue项目中安装和使用Yup验证库。

步骤
1. 安装yup库和@nuxtjs/yup包

使用npm或yarn安装yup和@nuxtjs/yup包:

npm install yup @nuxtjs/yup --save
2. 在需要验证的vue组件引入yup

在Vue组件中,您可以添加yup验证,并使用它来验证模型对象。在需要验证的组件中引入yup:

import * as Yup from 'yup'

export default {
  name: 'FormComponent',
  data: () => ({
    model: {
      name: '',
    },
    errors: {},
    isSubmitting: false,
  }),
  methods: {
    async submitForm() {
      try {
        this.isSubmitting = true
        const schema = Yup.object().shape({
          name: Yup.string().required('Name is required'),
        })
        await schema.validate(this.model, { abortEarly: false })
        // form submission logic
      } catch (error) {
        if (error.name === 'ValidationError') {
          this.errors = error.errors.reduce(
            (errors, validationError) => ({
              ...errors,
              [validationError.split(':')[0]]: validationError.split(':')[1],
            }),
            {},
          )
        } else {
          console.error(error)
        }
      } finally {
        this.isSubmitting = false
      }
    },
  },
}

在上面的代码中,我们创建了一个名为FormComponent的vue组件,并在data()中初始化了model和其他必要的属性。我们实例化了一个yup验证schema,使用了string()required()、等yup验证方法。

在提交表单时,我们在try-catch中验证了我们的模型数据。如果验证失败,我们将显示错误信息。

3.在组件模板中显示错误消息

在您的组件模板中,您可以使用v-if指令将错误消息显示在表单字段旁边,如下所示:

<template>
  <form @submit.prevent="submitForm">
    <label>
      Name:
      <input type="text" v-model="model.name">
      <div v-if="errors.name">{{ errors.name }}</div>
    </label>
    <button :disabled="isSubmitting" type="submit">Submit</button>
  </form>
</template>
4. 运行代码测试

现在您可以在Vue应用程序中测试yup验证。

结论

这就是在Vue中使用Yup验证库的完整教程。使用这个优秀的验证库可以大大简化您的表单验证过程,并且它易于阅读和维护。如果您正在设计Vue应用程序,并希望使用专业的验证库来验证表单,那么Yup是一个非常好的选择。