Drawer 抽屉

Dialog 不足以承载超大表单或长文案(如服务条款)时,可使用 Drawer。其 API 与 Dialog 接近,但交互形态为侧滑面板。

TIP

组件已原生支持 v-modelvisible.sync 已废弃,请使用 v-model 绑定显隐。

基础用法

从多个方向呼出临时抽屉。

Dialog 类似,通过布尔类型的 model-value 控制显示。抽屉包含 titlebodyfootertitle 可用属性或具名插槽,默认为空;body 为用户内容区。默认从右侧滑入,宽度约为视口 30%,可通过 directionsize 调整。本例演示 before-close 用法,详见属性表。

无标题

不需要标题时可关闭标题区。

withHeader 设为 false 可去掉标题区以腾出空间。若需无障碍支持,请仍设置 title 属性。

自定义内容

Dialog 相同,可承载丰富交互。

自定义头部

使用 header 插槽自定义标题区域;请同时设置 title 属性,或使用插槽属性 titleId 指定朗读为标题的元素。

可调整宽度

拖拽边缘调整尺寸。

设置 resizabletrue 启用。

嵌套抽屉

Dialog 类似支持多层。

多层抽屉请将内层 append-to-body 设为 true

遮罩层

modalfalse 时不显示遮罩。

支持 modal-penetrable,允许事件穿透。

TIP

抽屉内内容建议懒渲染:未打开前不应影响首屏性能;DOM 操作请在 open 事件后或通过 ref 进行。

TIP

destroy-on-close 表示关闭后是否销毁内部子树;若希望每次打开都重新走子组件的 mounted,可开启该属性。

API

属性

名称说明类型默认值
model-value / v-model是否显示booleanfalse
append-to-body是否插入到 document.body;嵌套抽屉必须为 truebooleanfalse
append-to挂载目标;会覆盖 append-to-bodyCSSSelector / HTMLElementbody
lock-scroll显示时是否锁定 body 滚动booleantrue
before-close若设置则拦截关闭;done 为函数,调用时传入 true 或不传参可取消关闭Function
close-on-click-modal点击遮罩是否关闭booleantrue
close-on-press-escape按 ESC 是否关闭booleantrue
open-delay打开前延迟(毫秒)number0
close-delay关闭前延迟(毫秒)number0
destroy-on-close关闭后是否销毁内部内容booleanfalse
modal是否显示遮罩booleantrue
modal-penetrable遮罩是否可穿透;需将 modal 设为 falsebooleanfalse
direction打开方向enumrtl
resizable是否可调整尺寸booleanfalse
show-close是否显示右上角关闭按钮booleantrue
size抽屉尺寸:水平方向影响宽度,垂直方向影响高度。number 表示像素;string 若为 x% 则按百分比,否则按像素解析number / string30%
title标题;也可用具名插槽,详见插槽说明string
with-header是否显示头部;为 falsetitle 属性与 title 插槽均不展示booleantrue
modal-class遮罩额外类名string
header-class头部包裹层类名string
body-class内容区包裹层类名string
footer-class底部包裹层类名string
z-index层级number
header-aria-level a11y头部 aria-levelstring2

WARNING

custom-class废弃,请改用 class

事件

名称说明类型
open打开动画开始前Function
opened打开动画结束后Function
close关闭动画开始前Function
closed关闭动画结束后Function
open-auto-focus打开且内容聚焦后Function
close-auto-focus关闭且焦点处理后Function
resize-start开始调整尺寸(resizable 开启时)Function
resize调整尺寸过程中Function
resize-end结束调整尺寸Function

插槽

名称说明
default主体内容
header头部;替换后不显示标题文案,关闭按钮仍保留
footer底部

WARNING

title 插槽已废弃

暴露

名称说明
handleClose关闭抽屉,内部会调用 before-close