默认插槽是Vue中最基础的插槽类型,子组件通过单个<slot></slot>定义内容接收口并可设默认内容,父组件直接在标签内写内容即可使用,内容保持父作用域。

默认插槽是 Vue 中最基础、最常用的插槽类型,它让父组件能直接把内容“塞进”子组件的指定位置,不需额外命名或指令——只要子组件留一个 <slot></slot>,父组件写在标签内的内容就会自动渲染进去。
默认插槽怎么定义(子组件里)
在子组件模板中,用一个空的 <slot></slot> 或简写为 <slot /> 即可。它就像一个“内容接收口”,位置由你决定,比如放在按钮中间、卡片主体区、弹窗正文里。
- 支持写默认内容:
<slot>暂无内容</slot>,当父组件没传任何东西时,就显示这句 - 只能有一个默认插槽逻辑上合理;多个会导致内容重复插入,容易混乱
- 插槽内部不访问子组件数据,但能自由使用父组件的变量、方法、v-if/v-for 等
默认插槽怎么使用(父组件里)
直接把要展示的内容写在子组件标签内部即可,不需要加 <template> 或 v-slot 指令。
- 可以是纯文本:
<MyCard>欢迎来到首页</MyCard> - 可以是 HTML 标签:
<MyCard><p>一段说明</p><img src="..."></MyCard> - 可以是其他组件:
<MyCard><UserAvatar /><UserInfo /></MyCard> - 也可以完全留空,此时子组件会显示其设定的后备内容(如“暂无内容”)
常见场景与注意事项
适合用于内容结构固定但主体内容多变的组件,比如按钮、卡片、模态框、列表项等。
立即学习“前端免费学习笔记(深入)”;
- 按钮组件:子组件里
<button><slot>点击</slot></button>,父组件传<MyButton>提交订单</MyButton> - 卡片组件:子组件用
<slot></slot>占位主体区域,父组件控制具体展示什么图文 - 注意作用域:父组件传入的内容仍属于父作用域,不能直接读取子组件的
data或computed - 不要在子组件里多次写
<slot></slot>,否则内容会被重复渲染


















