最佳答案
有没有办法只显示一个插槽,如果它有任何内容?
例如,我正在构建一个简单的 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']
,但它返回未定义的值。
有人有什么建议吗?