有什么方法可以只显示包含任何内容的广告位?
例如,我正在构建一个简单的Card.vue
组件,并且只希望在页脚位置包含内容的情况下显示页脚:
模板:
<template>
<div class="panel" :class="panelType">
<div class="panel-heading">
<h3 class="panel-title">
<slot name="title">
Default Title
</slot>
</h3>
</div>
<div class="panel-body">
<slot name="body"></slot>
<p class="category">
<slot name="category"></slot>
</p>
</div>
<div class="panel-footer" v-if="hasFooterSlot">
<slot name="footer"></slot>
</div>
</div>
</template>
脚本:
<script>
export default {
props: {
active: true,
type: {
type: String,
default: 'default',
},
},
computed: {
panelType() {
return `panel-${this.type}`;
},
hasFooterSlot() {
return this.$slots['footer']
}
}
}
</script>
在视图中:
<card type="success"></card>
由于上述组件不包含页脚,因此不应呈现它,而应呈现它。
我尝试使用this.$slots['footer']
,但这返回未定义。
有人有提示吗?
希望我理解这一权利。
<template>
如果插槽为空,为什么不使用未渲染的标签。像这样使用它: