抽屉
有时,Dialog并不总是满足我们的要求,假设您有一个巨大的表单,或者您需要空间来显示类似terms & conditions的东西,Drawer与Dialog具有几乎相同的API,但它引入了不同的用户体验。
TIP
由于所有组件原生支持 v-model,因此 visible.sync 已被弃用,请使用 v-model="visibilityBinding" 来控制当前抽屉的可见性。
基本用法
从多个方向标注临时抽屉
您必须像 Dialog 一样为 Drawer 设置 model-value 来控制 Drawer 本身的可见性,它是 boolean 类型。 Drawer共有三部分:title & body & footer,其中title是一个命名槽,也可以通过名为title的属性设置标题,默认为空字符串, body部分是Drawer的主要区域,包含用户定义的内容。打开时,Drawer 从右角向左展开,默认大小为浏览器窗口的30%。您可以通过设置 direction 和 size 属性来更改该默认行为。该展示案例还演示了如何使用 before-close API,请查看属性部分以了解更多详细信息
无标题
当您不再需要标题时,可以将其从抽屉中删除。
将 withHeader 属性设置为 false,您可以从抽屉中删除标题,这样您的抽屉可以在屏幕上拥有更多空间。如果您希望可访问,请确保设置 title 属性。
定制内容
与 Dialog 一样,Drawer 可用于显示多种不同的交互。
自定义标题
header 插槽可用于自定义显示标题的区域。为了保持可访问性,除了使用此槽之外,还可以使用 title 属性,或者使用 titleId 槽属性来指定应将哪个元素读出为抽屉标题。
可调整大小的抽屉 2.11.0
尝试拖动边缘部分。
将 resizable 设置为 true 以调整大小。
嵌套抽屉
您也可以拥有多层 Drawer,就像 Dialog 一样。
如果您需要在不同层中使用多个Drawer,则必须将append-to-body属性设置为true
模态
将 modal 设置为 false 将隐藏抽屉的模态(覆盖)。
从版本2.11.7开始,增加modal-penetrable属性,可穿透。
TIP
Drawer 内的内容应该是延迟渲染的,这意味着 Drawer 内的内容不会影响初始渲染性能,因此任何 DOM 操作都应通过 ref 或在 open 事件发出后执行。
TIP
Drawer提供了一个名为destroy-on-close的API,它是一个标志变量,指示在Drawer关闭后应该销毁Drawer内的子内容。当您需要每次打开抽屉时调用 mounted 生命周期时,可以使用此 API。
API
属性
| 名称 | 描述 | 类型 | 默认 |
|---|---|---|---|
| 模型值 / v 模型 | 是否应该显示抽屉 | 布尔值 | 假 |
| 附加到正文 | 控件应将 Drawer 插入到 DocumentBody 元素,嵌套的 Drawer 必须将此参数指定为 true | 布尔值 | 假 |
| 追加到 2.8.0 | Drawer 附加到哪个元素。将覆盖 append-to-body | CSS选择器 / HTMLElement | 身体 |
| 锁定滚动 | Drawer显示时是否禁用body滚动 | 布尔值 | 真实 |
| 收盘前 | 如果设置,关闭程序将停止 | 功能 | — |
| 点击关闭模式 | 是否可以通过点击蒙版来关闭抽屉 | 布尔值 | 真实 |
| 关闭新闻转义 | 指示是否可以通过按 ESC | 关闭抽屉布尔值 | 真实 |
| 打开延迟 | 打开前的时间(毫秒) | 数字 | 0 |
| 关闭延迟 | 关闭前的时间(毫秒) | 数字 | 0 |
| 关闭时销毁 | 指示抽屉关闭后是否应销毁子项 | 布尔值 | 假 |
| 莫代尔 | 应该显示阴影层 | 布尔值 | 真实 |
| 模态可穿透 2.11.7 | 面罩是否具有穿透性。模态属性必须是 false。 | 布尔值 | 假 |
| 方向 | 抽屉开启方向 | 枚举 | 左转 |
| 可调整大小 2.11.0 | 为抽屉启用可调整大小的功能 | 布尔值 | 假 |
| 显示关闭 | 应在抽屉 | 右上角显示关闭按钮布尔值 | 真实 |
| 尺寸 | Drawer的尺寸,如果Drawer为水平模式,则影响宽度属性,否则影响高度属性,当size为number类型时,以像素为单位描述尺寸;当size为string类型时,应使用x%表示法,否则将被解释为像素单位 | 数字 / 字符串 | 30% |
| 标题 | 抽屉的标题,也可以通过命名槽位来设置,详细说明可以参见槽位表 | 字符串 | — |
| 带有标题 | 控制 header 部分存在的标志,默认为 true,当 withHeader 设置为 false 时,title attribute 和 title slot 都不起作用 | 布尔值 | 真实 |
| 模态类 | 阴影层的额外类名 | 字符串 | — |
| 标头类 2.9.3 | 标头包装器的自定义类名 | 字符串 | — |
| 身体等级 2.9.3 | 正文包装的自定义类名 | 字符串 | — |
| 页脚类 2.9.3 | 页脚包装的自定义类名 | 字符串 | — |
| z 索引 | 设置 z 索引 | 数字 | — |
| 标头 aria 级别 a11y | 标头的 aria-level 属性 | 字符串 | 2 |
| 自定义类 ^(已弃用) | 抽屉 | 的额外类名称字符串 | — |
WARNING
custom-class 已弃用,并且将在 2.3.0 中删除,请使用 class。
活动
| 名称 | 描述 | 类型 |
|---|---|---|
| 打开 | 在抽屉打开动画开始之前触发 | 功能 |
| 打开 | 抽屉打开动画结束后触发 | 功能 |
| 关闭 | 在抽屉关闭动画开始之前触发 | 功能 |
| 关闭 | 抽屉关闭动画结束后触发 | 功能 |
| 打开自动对焦 | 抽屉打开且内容聚焦后触发 | 功能 |
| 近距离自动对焦 | 抽屉关闭且内容聚焦后触发 | 功能 |
| 调整大小开始 2.11.8 | 开始调整大小时触发(启用 resizable 时) | 功能 |
| 调整大小 2.11.8 | 调整大小时触发(启用 resizable 时) | 功能 |
| 调整大小结束 2.11.8 | 调整大小结束时触发(启用 resizable 时) | 功能 |
老虎机
| 名称 | 描述 |
|---|---|
| 默认 | 抽屉里的内容 |
| 标题 | 抽屉头部分;替换它会删除标题,但不会删除关闭按钮。 |
| 页脚 | 抽屉页脚部分 |
| 标题 ^(已弃用) | 与标头插槽的工作原理相同。用它来代替。 |
WARNING
title 已弃用,并且将在 3.0.0 中删除,请使用 header。
暴露
| 名称 | 描述 |
|---|---|
| 处理关闭 | 为了关闭Drawer,该方法将调用before-close。 |