在Vue中,可以使用<slot>
元素来定义组件的插槽,并通过<slot>
上的v-if
指令来判断是否有传入具名插槽内容,如果有就渲染插槽内容,如果没有就渲染默认内容。
下面是一个简单的例子:
<template>
<div>
<!-- 如果传入了默认插槽内容,则渲染它 -->
<slot v-if="!$slots.default"></slot>
<!-- 如果没有传入默认插槽内容,则渲染内部的文本 -->
<span v-else>内部文本</span>
</div>
</template>
<script>
export default {
name: 'MyComponent'
}
</script>
在这个例子中,<slot>
元素上的v-if
指令检查组件是否有默认插槽内容。如果没有,它将渲染<slot>
元素本身,这意味着它将显示传入的插槽内容。如果有默认插槽内容,它将不会渲染<slot>
元素,而是渲染<span>
元素和它的内容。