美文网首页VUE学习
VUE学习----validations(表单验证)

VUE学习----validations(表单验证)

作者: 扮猪老虎吃 | 来源:发表于2020-11-03 10:45 被阅读0次

    需要验证的场景

    • 必要的信息不能让用户提交空信息
    • 保证提交信息的格式正确
    • 表单验证控制一些元素的行为,比如信息不正确,提交按钮的相应

    Vuelidate

    Vuelidate是轻量级验证库。

    • 安装方式
      npm install vuelidate -S
    • 引入方式
      import 'Vuelidate' from Vuelidate
    • 使用示例
    //demo.vue
     <template>
         <div>
             <input type="email" v-model="email"/>
             <button type="submit">提交</button>
         </div>
     </template>
     
     <script>
        import { required, email } from 'vuelidate/lib/validators'
        export default {
            data() {
                return {
                    email: null
                }
            },
            validations: {
                email: {
                    required,
                    email
                }
            }
        }
    </script>
    

      demo中,组件添加了一个validations选项,为data中的数据email添加一个对象,被template中的input元素绑定。从Vuelidate导入‘required’、‘email’等规则,都是内置的Vuelidate验证器

    规则 参数 描述
    required Boolean 需要非空数据。检查空数组和仅包含空格的字符串。
    minLength 最小长度 要求输入具有最小指定长度(包括首尾)。与数组一起使用。
    maxLength 最长长度 要求输入具有最大的指定长度(包括该长度)。与数组一起使用。
    between 最小,最大 检查数字或日期是否在指定范围内。最小值和最大值都包括在内。
    alpha Boolean 仅接受字母字符。
    alphaNum Boolean 仅接受字母数字
    numeric Boolean 仅接受数字。
    integer Boolean 接受正负整数。
    integer Boolean 接受正负整数。
    decimal Boolean 接受正负十进制数。
    email Boolean 接受有效的电子邮件地址。请记住,您仍然必须在服务器上仔细验证它,因为如果不发送验证电子邮件就无法确定该地址是否真实。
    ipAddress Boolean 接受点分十进制表示法的有效IPv4地址,例如127.0.0.1。
    minValue 要求输入具有指定的最小数值或日期。
    maxValue 最大值 要求输入具有指定的最大数值或日期。
    macAddress 分隔符=':' 接受有效的MAC地址,例如00:ff:11:22:33:44:55。不要忘记调用它macAddress(),因为它具有可选参数。您可以指定自己的分隔符,而不是':'。
    url Boolean 接受有效的url地址。
    or ||
    and &&
    not !
    withParams $params 不是真正的验证器,而是验证器修饰符。将$params对象添加到提供的验证器中。可以用于验证功能,甚至可以用于整个嵌套字段验证对象。对于创建自己的自定义验证器很有用。
    requiredIf 定位器* 仅在提供的属性为true时才进行验证。
    requiredUnless 定位器* 仅在提供的属性为false时才进行验证。
    sameAs 定位器* 检查给定属性是否相等。

      Vuelidate自动为组件添加$v的计算属性,包含整个表单验证的当前状态。可以单独读取email对象,包含了email验证的状态。

    $v.email.$invalid = true(说明email这项表单没有通过验证)
    $v.email.required = false(说明email为空)
    $v.email.required = false && $v.email.email = false(说明email格式错误)
    

      表单出现问题时,可以有效向用户显示错误,但是进入页面就自动显示错误消息,用户体验不好。Vuelidate提供了很多方法和属性使用。例如:

    $v.email.$dirty  // 用户是否有触发过表单
    $v.email.$error // 用户真实错误$dirty + $invalid
    $v.email.$touch() // 用来改变$dirty值
    

    $v中同时包含了表单的全局属性,可用于编写表单提交逻辑,即:

    $v.$dirty
    $v.$error
    $v.$anyDirty
    $v.$anyError
    $v.$invalid
    

    $v.$invalid将在任何与我们的验证相关的错误发生时为真。您可以在提交表单之前检查$v.$invalid状态,从而轻松完成验证表单操作。注意:在那之前我们调用$v.$touch(),这将更改所有表单验证的$v.$dirty状态,导致所有$invalid字段的$error为true。

    相关文章

      网友评论

        本文标题:VUE学习----validations(表单验证)

        本文链接:https://www.haomeiwen.com/subject/lhlbvktx.html