Vue的props组件详解

2024-03-20 1465阅读

温馨提示:这篇文章已超过384天没有更新,请注意相关的内容是否还可用!

const props = defineProps({
  name: String,
});

String 是在 defineProps() 函数中用来声明 name prop 的类型,表示 name 必须是字符串类型。如果父组件没有传入 name 或传入的 name 不是字符串类型,那么就会产生类型验证错误。

Vue的props组件详解
(图片来源网络,侵删)

defineProps() 函数支持的数据类型除了 String,还包括以下几种:

  • Number:数字类型,可以是整数或浮点数。
  • Boolean:布尔类型,值为 true 或 false。
  • Object:对象类型,可以是纯粹的对象、函数或数组等。
  • Array:数组类型,可以是任何类型的项组成的数组,也可以是多维数组。
  • null:强制要求 prop 的值必须为 null。
  • undefined:强制要求 prop 的值必须为 undefined。
  • 自定义类型:你可以传递一个自己定义的构造函数,用于验证 prop 的类型是否正确。

    此外,还有一些常用的验证规则:

    • required:布尔类型,指定该 prop 是否必须传入。
    • default:设置默认值,在父组件未传入时会使用该值。
    • validator:传入一个自定义的验证函数,用于验证 prop 是否合法。

      例如:

      const props = defineProps({
        age: {
          type: Number,
          default: 18,
          validator: (value) => value > 0 && value  ({ name: 'Tom', age: 20 }),
        },
      });
      

      在上面的例子中,我们声明了三个 prop:age、isVisible 和 person。其中,age 是数字类型,必须为正整数且不能超过 120 岁;isVisible 是布尔类型,如果父组件没有传入,则默认为 true;person 是对象类型,如果父组件没有传入,则默认为 { name: 'Tom', age: 20 }。

      总之,在定义 props 时,我们需要考虑 props 的类型、是否必须、默认值和验证规则等,以及如何在组件内部使用这些 props。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]