You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue2.7组合式API:如何在antdv a-drawer头部插入元素

解决Vue2.7中Ant Design Vue Drawer头部标题与自定义元素同行显示的问题

核心思路

Ant Design Vue的a-drawer组件的title插槽会完全替换默认的标题区域,你之前单独设置title属性再用插槽的方式会导致原标题被覆盖。正确做法是在title插槽内同时放置标题文本和自定义Swag元素,再通过CSS布局实现同行显示。

具体实现代码

<template>
  <a-drawer :visible="drawerVisible">
    <!-- 使用Vue2.7支持的v-slot缩写语法 -->
    <template #title>
      <div class="drawer-header-wrap">
        <span>TRANSCRIPT DRAWER</span>
        <div class="swag-block">Swag</div>
      </div>
    </template>

    <!-- Drawer内容区域 -->
    <div>Drawer content goes here</div>
  </a-drawer>
</template>

<script setup>
import { ref } from 'vue'

const drawerVisible = ref(true) // 控制Drawer显示状态
</script>

<style scoped>
.drawer-header-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between; /* 标题居左、Swag居右,可按需调整 */
  width: 100%;
}

.swag-block {
  /* 自定义样式示例 */
  color: #1890ff;
  font-weight: 600;
}
</style>

关键说明

  • Vue2.7支持Vue3的<script setup>语法和v-slot缩写(#title),无需再用旧的slot="title"写法,代码更规范。
  • 外层容器drawer-header-wrap用flex布局是核心:align-items: center保证元素垂直居中,justify-content可根据需求调整水平分布(比如要让Swag紧跟标题,就改成justify-content: flex-start,再给Swag加margin-left: 16px)。
  • 不要同时设置a-drawer的title属性和title插槽,插槽内容会完全覆盖默认标题,所有头部内容都要写在插槽内。

内容的提问来源于stack exchange,提问作者Nicholas Piccaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:09:58