Skip to content

Drawer 抽屉

抽屉组件,用于从屏幕边缘滑出的面板。

何时使用:需要从屏幕边缘滑出一个面板展示详情或表单,且不遮挡全部内容时使用。全屏弹窗请使用 Modal。

基础用法

方向

尺寸

自定义头部/底部

API

Props

属性类型默认值说明
modelValuebooleanfalse是否显示(v-model)
placement'left' | 'right' | 'top' | 'bottom''right'抽屉方向
size'sm' | 'md' | 'lg' | 'xl' | 'full''md'尺寸
titlestring''标题文本
closablebooleantrue是否显示关闭按钮
closeOnOverlaybooleantrue点击遮罩层是否关闭
closeAriaLabelstring'关闭抽屉'关闭按钮的无障碍标签
enableEscbooleantrue是否启用 ESC 键关闭
enableFocusTrapbooleantrue是否启用焦点陷阱(键盘 Tab 循环)

Slots

名称说明
header自定义头部内容(优先级高于 title
default抽屉主体内容
footer底部区域

Events

事件参数说明
update:modelValue(value: boolean)显示状态变化时触发
open抽屉打开时触发
close抽屉关闭时触发

注意事项

  • 使用 closeOnOverlay && handleClose() 时,必须加上括号,否则 closeOnOverlaytrue 时仅返回函数而未执行,导致点击遮罩层无法关闭。

  • size="full"placement="left"/"right" 时,抽屉会占满全屏,遮罩层将不可见,建议避免此组合或根据实际需求调整。

  • 抽屉打开时会自动锁定 body 滚动,关闭时恢复。

  • 支持按 ESC 键关闭(可通过 enableEsc 禁用)。

  • 打开时自动启用焦点陷阱(可通过 enableFocusTrap 禁用)。

  • 关闭后焦点自动返回打开前的触发元素(WCAG 2.4.3)。

  • 包含完整的 ARIA 无障碍属性。

Released under the MIT License