跳转到内容

Drawer 抽屉

何时使用

抽屉从父窗体边缘滑入,覆盖住部分父窗体内容。用户在抽屉内操作时不必离开当前任务,操作完成后,可以平滑地回到原任务。

  • 当需要一个附加的面板来控制父窗体内容,这个面板在需要时呼出。比如,控制界面展示样式,往界面中添加内容。
  • 当需要在当前任务流中插入临时任务,创建或预览附加内容。比如展示协议条款,创建子对象。

代码演示

基础抽屉

loading

自定义位置

loading

可调整大小

loading

加载中

loading

额外操作

loading

渲染在当前 DOM

loading

多层抽屉

loading

遮罩

loading

关闭按钮位置

loading

API

:::warning{title=注意} v5 使用 rootClassNamerootStyle 来配置最外层元素样式。原 v4 classNamestyle 改至配置 Drawer 窗体样式以和 Modal 对齐。 :::

参数说明类型默认值版本
autofocus抽屉展开后是否将焦点切换至其 DOM 节点booleantrue4.17.0
afterOpenChange切换抽屉时动画结束后的回调function(open)-
classNameDrawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassNamestring-
classNames语义化结构 className[Record<SemanticDOM, string>]-5.10.0
closeIcon自定义关闭图标。5.7.0:设置为 nullfalse 时隐藏关闭按钮VNode<CloseOutlined />
destroyOnHidden关闭时销毁 Drawer 里的子元素booleanfalse5.25.0
extra抽屉右上角的操作区域VNode-4.17.0
footer抽屉的页脚VNode-
forceRender预渲染 Drawer 内元素booleanfalse
getContainer指定 Drawer 挂载的节点,并在容器内展现false 为挂载在当前位置HTMLElement | () => HTMLElement | Selectors | falsebody
keyboard是否支持键盘 esc 关闭booleantrue
mask遮罩效果boolean | { enabled?: boolean, blur?: boolean }true
maskClosable点击蒙层是否允许关闭booleantrue
placement抽屉的方向top | right | bottom | leftright
push用于设置多层 Drawer 的推动行为boolean | { distance: string | number }{ distance: 180 }4.5.0+
resizable是否启用拖拽改变尺寸ResizableConfig-6.0.0
rootStyle可用于设置 Drawer 最外层容器的样式,和 style 的区别是作用节点包括 maskCSSProperties-
size预设抽屉宽度(或高度),default 378px 和 large 736px,或自定义数字'default' | 'large' | number'default'4.17.0
style设计 Drawer 容器样式,如果你只需要设置内容部分请使用 styles.bodyCSSProperties-
styles语义化结构 style[Record<SemanticDOM, CSSProperties>]-5.10.0
title标题VNode-
loading显示骨架屏booleanfalse5.17.0
openDrawer 是否可见boolean-
zIndex设置 Drawer 的 z-indexnumber1000
onClose点击遮罩层或左上角叉或取消按钮的回调function(e)-
drawerRender自定义渲染抽屉(node: VNode) => VNode-5.18.0

ResizableConfig

参数说明类型默认值版本
onResizeStart开始拖拽调整大小时的回调() => void-6.0.0
onResize拖拽调整大小时的回调(size: number) => void-6.0.0
onResizeEnd结束拖拽调整大小时的回调() => void-6.0.0

基于 MIT 许可发布