slot
1. slot 是什么
slot(插槽)是 Vue 组件中的内容分发机制,允许父组件向子组件的指定位置插入自定义内容,实现组件的 “模板复用 + 内容定制”,让组件更灵活通用。
2. 使用场景
- 组件内容自定义:封装通用组件(如弹窗、卡片)时,让父组件自定义组件内部的部分内容(如弹窗的标题、卡片的主体);
- 组件结构扩展:复杂组件(如表格、导航栏)中,允许父组件插入自定义的列、菜单项;
- 组件逻辑与视图分离:子组件负责逻辑 / 布局,父组件负责具体视图内容的展示。
3. 分类
| 分类 | 说明 |
|---|---|
| 匿名插槽 | 无名称的插槽,父组件插入的内容默认填充到该插槽(一个组件仅一个匿名插槽) |
| 具名插槽 | 带名称的插槽(通过name属性标识),父组件可指定内容插入到对应名称的插槽 |
| 作用域插槽 | 子组件向父组件传递数据的插槽,父组件可接收子组件的数据并自定义渲染内容 |
4. 原理分析
slot 的本质是组件编译时的内容分发标记:
- 子组件中
slot标签会被标记为 “内容插入点”; - 父组件中插入到子组件标签内的内容,会被编译为 “待分发内容”;
- Vue 在渲染时,将 “待分发内容” 匹配到子组件对应的
slot位置,完成内容注入。



