Vue3: 定义组件Props
定义组件Props
·
<template>
<div>
<div><a-divider orientation="left">{{name}}</a-divider></div>
<div>
范德萨发
</div>
</div>
</template>
<script lang="ts">
// 抽屉工具,支持8个或者是4个
import { defineComponent } from 'vue';
export default defineComponent({
name: 'ToolDrawer',
props:{
'name':{
type:String,
default : '未命名'
}
}
});
</script>
可以使用和vue2 一样的语法。
// 使用 <script setup>
defineProps({
title: String,
likes: Number
})
// 非 <script setup>
export default {
props: {
title: String,
likes: Number
}
}
类型说明
要声明对 props 的校验,你可以向 defineProps() 宏提供一个带有 props 校验选项的对象,例如:
defineProps({
// 基础类型检查
// (给出 `null` 和 `undefined` 值则会跳过任何类型检查)
propA: Number,
// 多种可能的类型
propB: [String, Number],
// 必传,且为 String 类型
propC: {
type: String,
required: true
},
// Number 类型的默认值
propD: {
type: Number,
default: 100
},
// 对象类型的默认值
propE: {
type: Object,
// 对象或数组的默认值
// 必须从一个工厂函数返回。
// 该函数接收组件所接收到的原始 prop 作为参数。
default(rawProps) {
return { message: 'hello' }
}
},
// 自定义类型校验函数
propF: {
validator(value) {
// The value must match one of these strings
return ['success', 'warning', 'danger'].includes(value)
}
},
// 函数类型的默认值
propG: {
type: Function,
// 不像对象或数组的默认,这不是一个工厂函数。这会是一个用来作为默认值的函数
default() {
return 'Default function'
}
}
})
更多推荐
已为社区贡献1条内容
所有评论(0)