Vue组件插槽和默认内容同时存在时怎么设计才合理?

Des.皓轩 阅读 41

我在做可复用的卡片组件时遇到个困惑,想让组件既能显示默认内容,又能被用户自定义覆盖。比如这样写:


<template>
  <div class="card">
    <slot>这里是默认标题</slot>
    <div>固定内容区域</div>
  </div>
</template>

但父组件使用时如果传了插槽内容,固定区域就会被一起替换掉。试过把固定内容放在后面,结果默认标题就失效了。该怎么设计才能让默认标题可替换,而固定区域始终保留呢?感觉结构设计哪里有问题…

我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
Mr.亚龙
Mr.亚龙 Lv1
你这结构确实有问题,默认内容和固定区域互相干扰了。解决方法很简单,把固定内容单独拎出来放在外面就行。我一般直接这么写:



这样父组件用的时候,不管是用默认标题还是自定义内容,固定区域都不会被替换掉。样式你自己加个class控制下间距就行。
点赞 7
2026-02-06 13:05