Drawer 抽屉

有些时候,Dialog 组件并不满足我们的需求,比如你的表单很长,亦或是你需要临时展示一些文档,Drawer 拥有和 Dialog 几乎相同的 API,在 UI 上带来不一样的体验。

提示

由于所有组件原生都支持 v-model,visible.sync 已被弃用,请使用 v-model="visibilityBinding" 来控制当前抽屉的可见性。

基础用法

从不同的方向呼出一个临时的抽屉。

无标题

当你不再需要一个标题时,你可以从抽屉中移除它。

自定义内容

Dialog 组件类似,Drawer 组件同样可以在其中加入各种不同的交互。

自定义标题

header 插槽可用于自定义显示标题的区域。 为了保持可访问性,除了使用此插槽外,还请使用 title 属性,或使用 titleId 插槽属性指定应作为抽屉标题读出的元素。

可调整大小的抽屉 2.11.0

尝试拖动边缘部分。

多层抽屉

Dialog 组件类似,我们也可以拥有多层 Drawer

设置 modalfalse 将会隐藏抽屉的模态框(遮罩层)。

从版本 2.11.7 开始,增加了 modal-penetrable 属性,可以穿透。

提示

Drawer 内部的内容应该是懒渲染的,这意味着 Drawer 内部的内容不会影响初始渲染性能,因此任何 DOM 操作都应通过 ref 或在发出 open 事件后执行。

提示

Drawer 提供了一个名为 destroy-on-close 的 API,它是一个标志变量,指示在 Drawer 关闭后是否应销毁 Drawer 内部的子内容。当您需要每次打开 Drawer 时都调用 mounted 生命周期时,可以使用此 API。

API

属性

名称描述类型默认值
model-value / v-model是否显示 Drawerbooleanfalse
append-to-body控制 Drawer 是否插入到 DocumentBody 元素中,嵌套的 Drawer 必须将此参数赋值为 truebooleanfalse
append-to 2.8.0Drawer 附加到的元素。将覆盖 append-to-bodyCSSSelector / HTMLElementbody
lock-scroll当 Drawer 显示时,是否禁用 body 的滚动booleantrue
before-close如果设置,关闭过程将被中止Function
close-on-click-modal是否可以通过点击遮罩层关闭 Drawerbooleantrue
close-on-press-escape指示是否可以通过按 ESC 关闭 Drawerbooleantrue
open-delay打开前的延迟时间(毫秒)number0
close-delay关闭前的延迟时间(毫秒)number0
destroy-on-close指示 Drawer 关闭后是否销毁子元素booleanfalse
modal是否显示遮罩层booleantrue
modal-penetrable 2.11.7遮罩层是否可穿透。modal 属性必须为 falsebooleanfalse
directionDrawer 的打开方向枚举rtl
resizable 2.11.0为 Drawer 启用可调整大小的功能booleanfalse
show-close是否在 Drawer 的右上角显示关闭按钮booleantrue
sizeDrawer 的大小,如果 Drawer 是水平模式,它影响宽度属性,否则影响高度属性,当 size 是 number 类型时,它以像素为单位描述大小;当 size 是 string 类型时,应使用 x% 表示法,否则将被解释为像素单位number / string30%
titleDrawer 的标题,也可以通过命名插槽设置,详细描述可以在插槽表单中找到string
with-header控制头部区域是否存在的标志,默认为 true,当 withHeader 设置为 false 时,title 属性title 插槽都将不起作用booleantrue
modal-class遮罩层的额外类名string
header-class 2.9.3头部包装器的自定义类名string
body-class 2.9.3主体包装器的自定义类名string
footer-class 2.9.3底部包装器的自定义类名string
z-index设置 z-indexnumber
header-aria-level a11y头部的 aria-level 属性string2
custom-class 已弃用Drawer 的额外类名string

警告

custom-class 已被弃用,并将在 2.3.0移除,请使用 class

事件

名称描述类型
open在 Drawer 打开动画开始前触发Function
opened在 Drawer 打开动画结束后触发Function
关闭在 Drawer 关闭动画开始前触发Function
closed在 Drawer 关闭动画结束后触发Function
open-auto-focus在 Drawer 打开且内容获得焦点后触发Function
close-auto-focus在 Drawer 关闭且内容获得焦点后触发Function
resize-start 2.11.8在调整大小开始时触发(当 resizable 启用时)Function
resize 2.11.8在调整大小期间触发(当 resizable 启用时)Function
resize-end 2.11.8在调整大小结束时触发(当 resizable 启用时)Function

插槽

名称描述
defaultDrawer 的内容
headerDrawer 头部区域;替换此区域会移除标题,但不会移除关闭按钮。
footerDrawer 底部区域
title 已弃用与 header 插槽作用相同。请改用那个。

警告

title 已被弃用,并将在 3.0.0移除,请使用 header

暴露

名称描述
handleClose为了关闭 Drawer,此方法将调用 before-close

来源

组件样式文档

贡献者