vue3,具名插槽,检查是否传入具名插槽
时间: 2024-08-29 21:03:39 浏览: 74
vue中slot(插槽)的介绍与使用
在Vue3中,具名插槽(Named Slots)是一种用于父子组件通信的强大功能,允许父组件将内容区域预留出来,供子组件自定义填充。当你想让某个部分的内容可以根据不同的子组件而变化时,可以使用具名插槽。
例如,在父组件模板里,你可以设置一个`<slot name="custom-slot">...</slot>`,然后在对应的JavaScript里声明接受这个具名插槽:
```html
<template>
<div>
<slot name="custom-slot" :default="defaultContent"></slot>
</div>
</template>
<script>
export default {
data() {
return {
defaultContent: '这是默认内容',
};
},
};
</script>
```
子组件可以通过`<template slot="custom-slot">...</template>`来插入自定义内容,如果未提供内容,则会使用父组件提供的默认值。要检查是否传入了具名插槽,你可以通过`$slots`属性,它是一个对象,键是插槽名称,值是包含所有插槽内容的一个数组。
```javascript
console.log(this.$slots.customSlot); // 如果有传递内容,这里会得到相应的数组
```
如果没有子组件传递`custom-slot`,则`this.$slots.customSlot`会返回空数组或者`undefined`。
阅读全文