警告对话框
Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
isOpen | boolean | - | 对话框是否打开。必填。组件不会自行关闭,关闭请求通过 openChange 交给父组件。 |
isInline | boolean | false | 以普通文档流渲染表面,不使用 <dialog>、遮罩与焦点行为,仅用于文档预览。没有模态行为时根元素改用 role="group"。 |
title | string | - | 要向用户提出的问题,渲染为二级标题,并通过 aria-labelledby 为对话框命名。必填。 |
description | string | - | 确认之后会发生什么,通过 aria-describedby 与对话框关联。必填。 |
cancelLabel | string | 'Cancel' | 取消按钮的标签,渲染为 ghost 按钮。点击后发出 openChange(false)。 |
actionLabel | string | - | 确认按钮的标签。写清会发生什么,例如「删除项目」。必填。 |
actionVariant | AlertDialogActionVariant | 'destructive' | 确认按钮的视觉样式,取值与 Button 的变体一致:destructive、primary、secondary、ghost。 |
isActionLoading | boolean | false | 确认按钮显示加载指示,并带上 aria-busy;「取消」保持可用,对话框留在原地等待操作结束。 |
width | number | string | 400 | 首选宽度,数字单位为像素,字符串原样使用。由对话框夹取到容器与动态视口之内。 |
事件与模板引用
| 名称 | 签名 | 说明 |
|---|---|---|
openChange | (isOpen: boolean) => void | 用户取消时以 false 触发:按下「取消」或按 Escape。是否关闭由父组件决定;点击遮罩与点击确认按钮都不会触发它。 |
action | (event: MouseEvent) => void | 确认按钮被触发时发出。对话框不会自动关闭,请在操作结束后自行关闭。 |
element | HTMLElement | null | 根元素(模态下为 <dialog>,行内预览下为 <div>),通过模板引用暴露。 |
focus、blur | () => void | 把焦点移入或移出根元素。 |
插槽
| 名称 | 说明 |
|---|---|
title | 标题内容,用来替换 title 属性。承载它的元素仍然带着对话命名所需的 id。 |
description | 描述内容,用来替换 description 属性。同样保留 aria-describedby 指向的 id。 |
actions | 操作区里、取消与确认按钮之前的额外内容,例如指向说明文档的链接。 |
useImperativeAlertDialog
show(options):以给定选项打开对话框。选项为除isOpen之外的全部属性,另加一个onAction回调。hide():关闭对话框。isOpen:打开状态,为可写的 ref。Host:在模板中渲染一次的组件。
原生属性
模态下根元素为 <dialog>,行内预览下为 <div>。
以下内容传入根元素:
- HTML 属性。
aria-*属性。data-*属性。class。style。
组件自己维护 role、aria-modal、aria-labelledby 与 aria-describedby,因此这些属性以组件推导出的值为准。