# Vben Alert 轻量提示框
提供纯 JavaScript 调用的轻量提示框,适合快速创建 `alert`、`confirm`、`prompt` 这类简单交互。
## Alert 提示框
```ts
import { alert } from '@vben/common-ui';
// 基础用法
await alert('操作成功');
// 带标题
await alert('操作成功', '提示');
// 完整配置
await alert({
title: '提示',
content: '操作成功',
icon: 'success', // 'error' | 'info' | 'question' | 'success' | 'warning'
confirmText: '确定',
centered: true,
});
```
## Confirm 确认框
```ts
import { confirm } from '@vben/common-ui';
// 基础用法
const result = await confirm('确定要删除吗?');
if (result) {
// 用户点击确认
}
// 完整配置
const result = await confirm({
title: '确认删除',
content: '删除后数据无法恢复,确定要删除吗?',
icon: 'warning',
confirmText: '删除',
cancelText: '取消',
beforeClose: async ({ isConfirm }) => {
if (isConfirm) {
// 返回 false 阻止关闭
return await doDelete();
}
return true;
},
});
```
## Prompt 输入框
```ts
import { prompt } from '@vben/common-ui';
// 基础用法
const value = await prompt('请输入名称:');
if (value) {
console.log('用户输入:', value);
}
// 带默认值
const value = await prompt({
title: '请输入名称',
defaultValue: '默认名称',
});
// 自定义输入组件
const value = await prompt({
title: '请选择类型',
component: Select,
componentProps: {
options: [
{ label: '类型A', value: 'a' },
{ label: '类型B', value: 'b' },
],
},
defaultValue: 'a',
});
```
## useAlertContext
在自定义组件内获取弹窗上下文:
```vue
```
## Props 类型
```ts
type IconType = 'error' | 'info' | 'question' | 'success' | 'warning';
interface AlertProps {
title?: string;
content: Component | string;
icon?: Component | IconType;
confirmText?: string;
cancelText?: string;
showCancel?: boolean;
centered?: boolean;
bordered?: boolean;
buttonAlign?: 'center' | 'end' | 'start';
overlayBlur?: number;
beforeClose?: (scope: { isConfirm: boolean }) => boolean | Promise;
footer?: Component | string;
}
interface PromptProps extends AlertProps {
component?: Component;
componentProps?: Record;
defaultValue?: T;
modelPropName?: string;
}
```
## 使用场景
- 简单的确认提示
- 删除操作确认
- 快速输入收集
- 不需要复杂布局的弹窗
## 与 Modal 的区别
| 特性 | Alert | Modal |
|------|-------|-------|
| 调用方式 | 纯JS调用 | 组件式 |
| 复杂度 | 简单 | 可复杂 |
| 自定义内容 | 有限 | 完全自定义 |
| 表单支持 | prompt有限 | 完整支持 |
| 适用场景 | 快速确认/提示 | 复杂弹窗业务 |