Dialog 对话框
反馈组件
模态弹出框,用于需要用户处理事务的重要场景,不支持多框叠加。
何时使用
需要用户处理重要事务,且不希望跳转页面打断工作流时使用模态框。
代码示例
基础用法
tsx
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog"
export function Basic() {
return (
<Dialog>
<DialogTrigger>Open</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Title</DialogTitle>
<DialogDescription>Description.</DialogDescription>
</DialogHeader>
</DialogContent>
</Dialog>
)
}API / Props
Dialog
| Prop | Type | Default | 说明 |
|---|---|---|---|
className | string | — | 自定义样式类名 |
| ...rest | React.HTMLAttributes | — | 透传原生 DOM 属性 |
注意事项
- Client Component: 使用
"use client",依赖 React hooks/状态,需在客户端渲染。 - 复合组件: 包含 9 个子组件(DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader…),使用组合模式按需导入。
- Base UI: 基于
@base-ui/react无头(headless)原语构建,无障碍(a11y)开箱即用。
📘 完整交互式示例与控件属性请查看 Storybook 文档。