Vue中的slot

Vue 插槽的职责、类型与组件组合中的使用边界。

#tech / dev / frame #resource / vue3 #type / concept #status / growing

[!info] related notes

Vue中的slot

slot 是 Vue 提供的内容分发机制。它让父组件把一段模板内容交给子组件,在子组件预留的位置渲染出来。

一句话定义

如果 props 传的是数据,slot 更像传“可渲染的内容结构”。

它解决什么问题

  • 组件需要保留外部内容插入点
  • 组件既想封装结构,又不想把内容完全写死
  • 组件库场景里需要更高的可组合性

三种最常见的插槽类型

默认插槽

子组件只留一个内容入口。

具名插槽

同一个组件里保留多个命名入口,例如 headerfooter

作用域插槽

子组件把自己的数据暴露给父组件,父组件决定怎么渲染。

最适合的场景

  • 卡片
  • 弹窗
  • 表格列渲染
  • 列表项渲染
  • 布局组件

props 的边界

  • props 更适合传值和配置
  • slot 更适合传结构和内容

常见误区

  • 明明只是几个简单配置项,却硬上 slot
  • 组件开放了太多 slot,导致接口变得难以维护
  • 不区分默认插槽和作用域插槽的职责

最短记忆方式

slot 不是另一种传值方式,而是组件留给外部内容的插口。

面试要点

来自 vue-slot-interview-question 的面试视角整理。

一句话回答

props 更适合传数据和配置,slot 更适合把可渲染内容结构交给父组件决定,所以它们解决的是不同层级的问题。

最稳的回答主线

  • props:传值、传配置
  • slot:传内容结构
  • 卡片、弹窗、表格列渲染、布局组件往往更适合 slot

最短记忆方式

props 传数据,slot 传内容结构。

创建于 2025/1/1 更新于 2026/5/27