当前位置: 首页 > 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>

相关文章:

  • 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 应用
  • 指形铣刀的结构
  • 中国人保聘任田耕为副总裁,此前为工行浙江省分行行长
  • 秦洪看盘|上市公司业绩“排雷”近尾声,A股下行压力趋缓
  • 众信旅游:去年盈利1.06亿元,同比增长228.18%
  • 日本大米价格连续16周上涨,再创最高纪录
  • 俄外长与美国务卿通电话,讨论俄美关系及乌克兰问题
  • “十四五”以来少数民族发展资金累计下达边疆省区252亿元