在 Vue SPA 应用中如何实现表单数据的校验?

阅读时长 4 分钟读完

在前后端分离的应用架构中,表单验证是必不可少的一步。在 Vue 的单页面应用中,使用插件或者自己手写验证逻辑都是可行的方式。本文将详细介绍如何使用 Vuelidate 插件进行表单数据的校验。

Vuelidate 简介

Vuelidate 是一个轻量级的表单验证插件,能够与 Vue.js 紧密结合,根据表单的值和状态生成错误消息。它不依赖任何第三方库,体积小巧,易于使用。

安装 Vuelidate

使用 npm 安装 Vuelidate:

然后,我们需要在 main.js 中导入 Vuelidate:

在 Vue 组件中使用 Vuelidate

Vuelidate 会在 Vue 组件中添加 $v 属性,该属性包含了表单验证的状态和错误信息。在表单中使用 Vuelidate 需要两个步骤:

  1. 在 data 中定义表单中的数据,例如:

  2. 在 computed 中定义每一个数据的验证规则,例如:

    -- -------------------- ---- -------
    --------- -
      ---------- -- -
        ----- ------ - --
        -- ---------------------- ------ ------
        ---------------------- -- ---------------------
        ----------------------- -- -------------------------
        ------ ------
      --
      --------- -- -
        ----- ------ - --
        -- --------------------- ------ ------
        --------------------- -- ---------------------
        -------------------- -- ----------------------
        --------------------- -- -------------------------
        ------ ------
      -
    --

    在上述代码中,我们使用了 $dirty 属性来判断每一个数据是否已经被触摸,如果没有被触摸,则不会显示错误信息。同时,我们还定义了每个数据的具体验证规则,并通过 push() 方法将错误信息放入数组中返回。

  3. 在 template 中编写表单,并引用 computed 中的错误信息,例如:

    -- -------------------- ---- -------
    -----
      ------ ---------------------
      ------ --------- ------------------------------
      ---- ------------------------ ----------------------
        ---- ------------ -- ----------- -------------
          -- ----- --
        ------
      ------
    ------
    -----
      ------ --------------------
      ------ -------- -------------------------------
      ---- ----------------------- ----------------------
        ---- ------------ -- ---------- -------------
          -- ----- --
        ------
      ------
    ------

    在上述代码中,我们使用了 v-model.trim 和 v-model.number 来限制用户输入的内容并转换为正确的数据类型。同时,我们将 computed 中的错误信息通过 v-for 循环遍历来输出错误信息。

Vuelidate 常用的验证规则

Vuelidate 内置了许多常用的表单验证规则,例如:

  • required - 必填项
  • minLength - 最小长度
  • maxLength - 最大长度
  • minValue - 最小值
  • maxValue - 最大值
  • numeric - 数值类型
  • email - 电子邮件格式
  • alpha - 纯字母格式
  • alphaNum - 字母或数字格式

详情请参考官方文档(https://vuelidate.js.org)。

总结

Vuelidate 是一个强大的表单验证插件,能够简化表单验证的代码,提高开发效率,让我们的表单更加规范和安全。希望本文能够帮助读者更好地理解 Vuelidate 的使用方法,并应用于实际项目中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a55aa448841e98941e6795

纠错
反馈