当前位置: 首页 > news >正文

20250417-vue-条件插槽

有时候我们需要根据内容是否被传入了插槽来渲染某些内容。

你可以结合使用 $slot 属性与 v-if 来实现。

在下面的示例中,我们定义了一个卡片组件,它拥有三个条件插槽:header、footer 和 default。当 header、footer 或 default 的内容存在时,我们希望包装它以提供额外的样式:

子组件代码

<template><div class="card"><div v-if="$slots.header" class="card-header"><slot name="header" /></div><div v-if="$slots.default" class="card-content"><slot /></div><div v-if="$slots.footer" class="card-footer"><slot name="footer" /></div></div>
</template><style>.card {border: 1px solid black;padding: 0;}.card-header {background-color: skyblue;padding: 4px;}.card-content {padding: 4px;}.card-footer {background-color: lightgray;padding: 4px;}</style>

父组件代码

<template><Card><template #header><h1>标题</h1></template><template #default><p>内容</p></template><template #footer><em>底部</em></template></Card>
</template><script setup>import Card from './Card.vue'
</script>

http://www.dtcms.com/a/139820.html

相关文章:

  • uview1.0 tabs组件放到u-popup中在微信小程序中滑块样式错乱
  • Java深入
  • Qt常见按钮类控件属性及其使用
  • 微前端架构
  • 盘古-ultra:不用英伟达GPU,华为发布全新大模型
  • SpringBoot高校学生评教系统设计实现
  • MCP 与 A2A 协议:构建复杂 AI 系统的协同基石
  • 【时时三省】(C语言基础)用while语句实现循环
  • 消息队列通信原理与实现
  • 什么是人工智能芯片?
  • 网络协议分析
  • 【kubernetes】pod.spec.containers.ports的介绍
  • MySQL-CASE WHEN条件语句
  • 24-25【动手学深度学习】AlexNet + Vgg
  • 机器学习 | 细说Deep Q-Network(DQN)
  • 机器学习的简单应用
  • 2025.4.20机器学习笔记:文献阅读
  • 【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对
  • 快速上手,OceanBase + MCP + LLM,搭建 AI 应用
  • 指形铣刀的结构
  • Vue3+Vite+TypeScript+Element Plus开发-20.按钮权限
  • JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
  • 大模型在胃十二指肠溃疡预测及诊疗方案制定中的应用研究
  • 大M法处理非线性约束线性化
  • C语言数据类型取值范围
  • DataInputStream 终极解析与记忆指南
  • 期货跟单软件云端部署的重要性
  • 足球AI模型:一款用数据分析赛事的模型
  • vue入门:路由 router
  • 深度理解指针之例题