插槽 slot:内容怎么进、谁的作用域

props 传的是「数据」,插槽传的是「一段界面」。子组件里放 <slot> 当坑,父组件标签内的内容就填进去。 插槽分三种:默认插槽(一个坑)、具名插槽(header/body/footer 多个坑)、作用域插槽(子组件把自己的数据「反传」给父,让父决定长相)。

速查:插槽语法 + Vue2 / Vue3 差异

类型子组件(挖坑)父组件(填坑)
默认插槽<slot>兜底内容</slot>标签里直接写内容
具名插槽<slot name="header">…</slot><template #header>(旧:slot="header")
作用域插槽<slot :row="row"></slot><template #default="{ row }">(旧:v-slot="{row}")

差异:Vue2 用 slot="name" + <slot-scope>,Vue3 统一成 v-slot(缩写 #)且只能加在 <template> 上;this.$slots 在 Vue3 变成渲染函数。# 缩写只在 JS template 字符串/SFC 里安全,纯 in-DOM 模板里建议写全名 v-slot:header。

[迷你控制台] Vue 开发版的插槽/未定义变量警告会同时显示在这里和浏览器控制台