Drawer 抽屉
像抽屉一样的弹出层组件,在你不想使用 Dialog
的时候,可以用它代替,它与 Dialog
几乎一致,但拥有与 Dialog
完全不同的视觉效果。
基础用法
通过 v-model
指定,绑定显示状态。title
属性添加标题。
不同方位
通过 direction
属性,使 Drawer
从不同方位出现。仅支持 'l-r'
、'r-l'
、't-b'
、'b-t'
。
TIP
'l-r'
、'r-l'
、't-b'
、'b-t'
的完整含义:
l-r
:'left to right'
r-l
:'right to left'
t-b
:'top to bottom'
b-t
:'bottom to top'
自定义
通过 title
属性自定义标题。width
属性自定义宽度,height
属性自定义高度。通过 header
、default
、footer
插槽定义对应区域内。设置 :show-close="false"
隐藏关闭按钮。
WARNING
注意!
title
属性为空或者不设置则无标题。header
插槽会覆盖title
属性,所以它们无法同时存在。width
与height
无法同时设置。direction
为'l-r'
或'r-l'
,请设置width
;为't-b'
或'b-t'
请设置height
。
嵌套抽屉
Drawer
与 Dialog
一样支持嵌套,但也务必为子级 Drawer
添加 append-to-body
属性,以防止一些问题。
与 Dialog
重复的属性不再做重复展示。如:lock-scroll
、click-mask-close
、z-index
、mask
等。
阻止关闭
使用 before-close
属性,并绑定一个函数,则可阻止关闭。在关闭前会调用此函数,如果您不在此函数内手动关闭,则不会关闭。
TIP
before-close
绑定的函数会接收一个参数,此参数是一个关闭函数,通过调用此函数手动关闭。
WARNING
注意!虽然添加 before-close
之后会在关闭前阻止关闭,但如果是通过直接修改 v-model
绑定值关闭的话,则不受此属性影响。
APIs
属性
属性名 | 说明 | 类型 | 默认值 | 是必需项 |
---|---|---|---|---|
v-model | Drawer 显示/隐藏值 | boolean | —— | false |
title | 标题 | string | —— | false |
width | 宽度 | string | '30%' | false |
height | 高度 | string | '30%' | false |
direction | 方位 | 'l-r' | 'r-l' | 't-b' | 'b-t' | false | |
z-index | 同原生 CSS z-index | number | —— | false |
show-close | 是否为显示关闭按钮 | boolean | true | false |
append-to-body | 是否插入至 body | boolean | false | false |
mask | 是否需要遮罩层 | boolean | true | false |
lock-scroll | 是否锁定滚动条 | boolean | true | false |
click-mask-close | 是否可点击遮罩层关闭 | boolean | true | false |
before-close | 关闭前回调,可以阻止关闭。通过调用 close 参数函数手动关闭。 | (close: () => void): void | false | false |
事件
事件名 | 触发时机 | 参数 |
---|---|---|
open | Dialog 打开时触发 | (value: boolean): void |
close | Dialog 关闭时触发 | (value: boolean): void |
插槽
插槽名 | 说明 |
---|---|
default | 定义默认内容 |
header | 定义头部区域,会替换 title 属性内容 |
footer | 定义底部区域 |