白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

Vue-面试-插槽slot

2026年10月16日·Admin·1 次浏览

面试题:插槽有哪些?作用域插槽解决什么问题?

分类

  1. 默认插槽:父传一段模板,子用 <slot></slot> 占位。
  2. 具名插槽:<slot name="header">,父用 v-slot:header 或 #header。
  3. 作用域插槽:子把内部数据通过 slot props 暴露给父,父在插槽模板里使用。

作用域插槽(高频)

子组件:

<slot :row="row" :index="index"></slot>

父组件:

<Child v-slot="{ row, index }">
  {{ row.name }}
</Child>

解决的问题:父需要自定义子组件某块 UI 的渲染方式,同时又要用到子组件内部才能拿到的数据(如表格行数据、树节点)。

Vue3 中 统一为 v-slot(无 slot-scope 旧名)。

编译层面(了解即可)

插槽内容实际是父作用域编译的函数传入子组件,在子组件渲染时调用,因此插槽内变量默认解析父作用域,子传出的数据通过参数注入。

© 2025 My Blog. Built with Nuxt.js v4