Vue-插槽 (Slot) 的多种高级玩法
作者:互联网
2026-04-06
前言
在组件化开发中,插槽 (Slot) 是实现内容分发(Content Distribution)的核心机制。它允许我们将组件的“外壳”与“内容”解耦,让组件具备极高的扩展性。
一、 什么是插槽?
插槽是子组件提供给父组件的 “占位符” ,用 标签表示。父组件传递的任何模板代码(HTML、组件等)都会替换子组件中的 标签。
二、 插槽的三大类型
1. 默认插槽 (Default Slot)
最基础的插槽,不需要定义 name 属性。
- 特点:一个子组件通常只建议使用一个默认插槽。
示例:
通用卡片标题
这里是默认的填充文本
这是我传递给卡片的具体内容。
2. 具名插槽 (Named Slots)
当子组件需要多个占位符时,通过 name 属性来区分。
- 语法糖:
v-slot:header可以简写为#header。
示例:
页面标题
这是主体内容,将填充到默认插槽中...
版权信息 © 2026
3. 作用域插槽 (Scoped Slots)
核心价值: “子传父” 的特殊形式。子组件将内部数据绑定在 上,父组件在填充内容时可以接收并使用这些数据。
示例:
-
{{ user.name }}
<template>
<UserList>
<template #default="{ user }">
<span :style="{ color: user.role === '管理员' ? 'red' : 'blue' }">
{{ user.name }} - 【{{ user.role }}】
span>
template>
UserList>
template>
三、 补充:插槽的默认内容
在子组件中,你可以在 标签内部放置内容。如果父组件没有提供任何插槽内容,则会渲染这些“后备内容”;如果提供了,则会被覆盖。
这是如果没有内容时显示的默认文本
四、 总结:如何选择插槽?
| 插槽类型 | 使用场景 |
|---|---|
| 默认插槽 | 组件只有一个扩展点时使用。 |
| 具名插槽 | 组件有多个固定区域(如 Header/Main/Footer)需要自定义时使用。 |
| 作用域插槽 | 需要根据子组件的内部数据来决定父组件渲染样式的场景(如列表展示)。 |
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
sfsDb 时序数据处理指南
04/13
NineData 成功通过国家高新技术企业认定!
04/13
腾讯云轻量应用服务器管理:自动化轻量服务器 - Openclaw Skills
04/13
系统资源监控器:实时服务器健康追踪 - Openclaw Skills
04/13
前端老兵AI学习过程
04/13
工作笔记-CodeBuddy应用探索
04/13
OpenCode 完全指南:从 0 到 100K Star 的开源 AI 编码 Agent
04/13
Day11-龙虾哥打工日记:OpenClaw救援机器人 - 主系统挂了谁来救场?
04/13
Claude Code 创始人 Boris 揭秘:团队 10 倍效率技巧
04/13
拒绝“手搓”工具!带你硬核手写 MCP Server,解锁 Agent 的无限潜能
04/13
AI精选
