Vue的子组件props如何设置多个校验类型

 更新时间:2023年03月11日 11:17:21   作者:小火车况且况且  
这篇文章主要介绍了Vue的子组件props如何设置多个校验类型问题。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue子组件props设置多个校验值

1. type使用 | 进行隔开

props: {
    iconClass: {
      type: String | null,
      required: true,
      default: ""
    }
},

2. 使用数组

props: {
  iconClass: [String , null]
},

3. 使用validator校验函数

props: {
    iconClass: {
        validator: (value)=> {
          const getResult = Object.prototype.toString.call(value)
          if(getResult === "[object Null]" || getResult === "[object String]") return true;
        },
        required: true,
        default: ""
  },
}

vue组件参数校验

在vue中,当父组件向子组件传递值时.子组件可以对传递过来的值进行参数校验.

首先我们定义一个子组件child,接受父组件传递过来的值content.

<child :content="1"></child>

Vue.component('child',{
              props:['content'],
              template: "<div>{{content}}</div>",
          })

注意但我们在content前面加上:,它会认为这是js表达式,所以认为"1"是Number类型而不是String类型.

参数校验一

限定参数的类型

<child :content="1"></child>

Vue.component('child',{
              props:{
               content: [String,Number],   //这样就限制了参数的类型为String或者Number.
             },
              template: "<div>{{content}}</div>",
          })

如果不满足则会报[Vue warn]: Invalid prop: type check failed for prop “content”. Expected String, got Number.

参数校验二

限定参数的类型,是否必须,默认值

 Vue.component('child',{
              props:{
                 content:{
                     type:Number,   //限制参数的类型为Number
                     default:100,   //设置参数的默认值为100
                     required:false,  //是否必须
                 } 
              },
              template: "<div>{{content}}</div>",
          })

参数校验三

自定义校验规则

Vue.component('child',{
              props:{
                 content:{
                     type:Number,
                     default:100,
                     required:false,
                     validator:function(value){   //自定义校验的规则
                         return value>5;
                     }
                 }
              },
              template: "<div>{{content}}</div>",
          })

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue2.0使用过程常见的一些问题总结学习

    Vue2.0使用过程常见的一些问题总结学习

    本篇文章主要介绍了Vue2.0使用过程常见的一些问题总结学习,详细的介绍了使用中会遇到的各种错误,有兴趣的可以了解一下。
    2017-04-04
  • Vue组件通信方法案例总结

    Vue组件通信方法案例总结

    这篇文章主要介绍了Vue组件通信方法案例总结,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • vue导出html、word和pdf的实现代码

    vue导出html、word和pdf的实现代码

    这篇文章主要介绍了vue导出html、word和pdf的实现方法,文中完成了三种文件的导出但是还有很多种方法,小编就不给大家一一列举了,需要的朋友可以参考下
    2018-07-07
  • 解决vue数据更新但table内容不更新的问题

    解决vue数据更新但table内容不更新的问题

    这篇文章主要给大家介绍了vue数据更新table内容不更新解决方法,文中有详细的代码示例供大家作为参考,感兴趣的同学可以参考阅读一下
    2023-08-08
  • vue 如何绑定disabled属性让其不能被点击

    vue 如何绑定disabled属性让其不能被点击

    这篇文章主要介绍了vue 如何绑定disabled属性让其不能被点击,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue 组件中添加样式不生效的解决方法

    vue 组件中添加样式不生效的解决方法

    这篇文章主要介绍了vue 组件中添加样式不生效的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Vue.js之$emit用法案例详解

    Vue.js之$emit用法案例详解

    这篇文章主要介绍了Vue.js之$emit用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • vue中的传值及赋值问题

    vue中的传值及赋值问题

    这篇文章主要介绍了vue中的传值及赋值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue.js移动数组位置,同时更新视图的方法

    vue.js移动数组位置,同时更新视图的方法

    下面小编就为大家分享一篇vue.js移动数组位置,同时更新视图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 详解Vuex管理登录状态

    详解Vuex管理登录状态

    这篇文章主要介绍了详解Vuex管理登录状态,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论