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>",
          })

总结

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

相关文章

  • vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’

    vue3 el-pagination 将组件中英文‘goto’ 修改 为&nbs

    这篇文章主要介绍了vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’,通过实例代码介绍了vue3项目之Pagination 组件,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • Vue3中引入SCSS和LESS依赖的基本步骤和注意事项

    Vue3中引入SCSS和LESS依赖的基本步骤和注意事项

    我们项目开发中经常遇到样式里面会使用less和scss写法, less,scss和stylus都是css的预处理器,这篇文章主要给大家介绍了关于Vue3中引入SCSS和LESS依赖的基本步骤和注意事项,需要的朋友可以参考下
    2024-05-05
  • Vue中使用Ueditor的示例详解

    Vue中使用Ueditor的示例详解

    这篇文章主要介绍了Vue中使用Ueditor的方法,本文通过实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 基于Vue设计实现一个弹幕组件

    基于Vue设计实现一个弹幕组件

    这篇文章主要给大家分享一个开发中常见的需求,接下来将为大家详细介绍弹幕的实现以及设计思路一步一步描述出来,希望大家能够喜欢
    2023-06-06
  • vue网站优化实战之秒开网页

    vue网站优化实战之秒开网页

    最近在搭建自己的博客,前端采用Vue技术,发现首页加载速度非常之慢,常常达到10S左右,遂开始优化之旅,这篇文章主要给大家介绍了关于vue网站优化实战之秒开网页的相关资料,需要的朋友可以参考下
    2022-08-08
  • 关于vuepress部署出现样式的问题及解决

    关于vuepress部署出现样式的问题及解决

    这篇文章主要介绍了关于vuepress部署出现样式的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue组件中的父子组件使用

    Vue组件中的父子组件使用

    这篇文章主要介绍了Vue组件中的父子组件使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • element table列表根据数据设置背景色

    element table列表根据数据设置背景色

    在使用elementui中的el-table时,需要将表的背景色和字体颜色设置为新颜色,本文就来介绍一下element table列表根据数据设置背景色,感兴趣的可以了解一下
    2023-08-08
  • 使用vue.js实现checkbox的全选和多个的删除功能

    使用vue.js实现checkbox的全选和多个的删除功能

    这篇文章主要介绍了使用vue.js实现checkbox的全选和多个的删除功能,需要的朋友可以参考下
    2017-02-02
  • Vue电商网站首页内容吸顶功能实现过程

    Vue电商网站首页内容吸顶功能实现过程

    电商网站的首页内容会比较多,页面比较长,为了能让用户在滚动浏览内容的过程中都能够快速的切换到其它分类。需要分类导航一直可见,所以需要一个吸顶导航的效果。目标:完成头部组件吸顶效果的实现
    2023-04-04

最新评论