props的对象配置

如果将props定义为数组,有如下几个缺点:

1.无法进行数据类型的限制

2.无法对数据进行自定义的校验

解决:将props定义为对象

对象类型:通过对象的方式定义props成员,可以为每个prop成员制定规则(类型,校验...),常用的如下 :

一,单一类型限制:

通过type属性限制类型

类型要指定为构造函数类型,不要加引号,常见类型有:

String | Number | Boolean | Array | Object | Function

 props: {
    id: {
      type: String,
      required: true
    },
    isEdit: {
      type: Boolean,
      required: true
    },
    originList: {
      type: Array,
      required: true
    }
  }
.....

二,必填项校验:

通过required属性进行限制,如果后期没有传递这个数据,则报错:missing required prop 

(代码可看上面)

三,属性默认值:

通过default属性设置默认值

为props成员设置默认值,如果没有传递数据,则使用默认值,如果传递了数据,则使用传递的数据

细节:这个属性与required冲突,如果设置了required属性,则必须传递,有默认也失效

props: {
    fountColor: {
      type: String,
      default: "#fff",
    },
  }

四,自定义验证函数

可以对传入的值进行自定义的校验

通过添加一个validator函数进行数据的校验,如果函数返回false,则校验失败,进而报错

props: {
    list: {
      type: Array,
      required: true,
      // 自定义校验(数据源最少2个 最多5个)
      // validator:(v)是父组件的数据
      validator(v) {
        console.log(v);
        if (v.length >= 2 && v.length <= 5) {
          return true;
        } else {
          console.log("数据源2-5");
          return false;
        }
      },
    },
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值