toast-example.md
7.21 KB
Toast 工具使用指南
📦 导入
<script setup>
// 根据需要导入对应的函数
import {
showError,
showSuccess,
showInfo,
showConfirm,
showLoading,
hideLoading
} from '@/utils/toast'
</script>
🔧 API 文档
1. showError - 错误提示
显示错误提示,默认显示 3 秒。
参数:
-
title(string): 提示内容 -
duration(number, 可选): 显示时长,默认 3000ms
示例:
// 基础用法
showError('操作失败')
// 自定义时长
showError('网络异常,请重试', 2000)
// 在 try-catch 中使用
try {
await someAPI()
} catch (err) {
console.error(err)
showError('请求失败,请重试')
}
2. showSuccess - 成功提示
显示成功提示,默认显示 2 秒。
参数:
-
title(string): 提示内容 -
duration(number, 可选): 显示时长,默认 2000ms
示例:
// 基础用法
showSuccess('保存成功')
// 自定义时长
showSuccess('提交成功', 1500)
// 在 API 调用成功后使用
const res = await submitAPI()
if (res.code === 1) {
showSuccess('提交成功')
}
3. showInfo - 信息提示
显示普通信息提示,默认显示 2 秒。
参数:
-
title(string): 提示内容 -
duration(number, 可选): 显示时长,默认 2000ms
示例:
// 基础用法
showInfo('请先登录')
showInfo('请选择日期')
showInfo('请勾选同意须知')
4. showConfirm - 确认对话框
显示确认对话框,用户可以点击确定或取消。
参数:
-
content(string): 对话框内容 -
title(string, 可选): 对话框标题,默认 '提示' -
options(object, 可选): 其他配置项-
confirmText(string): 确认按钮文字,默认 '确定' -
cancelText(string): 取消按钮文字,默认 '取消' -
showCancel(boolean): 是否显示取消按钮,默认 true
-
返回: Promise<{ confirm: boolean, cancel: boolean }>
示例:
// 基础用法
const { confirm } = await showConfirm('确定删除吗?')
if (confirm) {
// 用户点击了确定
await deleteItem()
}
// 自定义标题
const { confirm } = await showConfirm('确定退出登录吗?', '警告')
if (confirm) {
await logout()
}
// 自定义按钮文字
const { confirm } = await showConfirm('此操作不可恢复', '警告', {
confirmText: '删除',
cancelText: '再想想'
})
// 不显示取消按钮
const { confirm } = await showConfirm('授权失败,请稍后再试', '提示', {
showCancel: false,
confirmText: '我知道了'
})
5. showLoading / hideLoading - 加载提示
显示和隐藏加载中提示。
参数:
-
title(string, 可选): 提示内容,默认 '加载中...' -
mask(boolean, 可选): 是否显示透明蒙层,默认 true
示例:
// 基础用法
showLoading('提交中...')
// 操作完成后
hideLoading()
// 自定义提示内容
showLoading('保存中...')
try {
await saveData()
} finally {
hideLoading()
}
// 不显示蒙层
showLoading('加载中...', false)
🎯 常见使用场景
场景 1: API 调用
const handleSubmit = async () => {
showLoading('提交中...')
try {
const res = await submitAPI(formData)
if (res.code === 1) {
showSuccess('提交成功')
// 跳转到其他页面
go('/pages/list/index')
} else {
showError(res.msg || '提交失败')
}
} catch (err) {
console.error(err)
showError('网络异常,请重试')
} finally {
hideLoading()
}
}
场景 2: 表单验证
const validateForm = () => {
if (!form.value.name) {
showError('请输入姓名')
return false
}
if (!form.value.idCard) {
showError('请输入身份证号')
return false
}
if (!/^\d{15}$|^\d{18}$|^\d{17}[\dXx]$/.test(form.value.idCard)) {
showError('请输入正确的身份证号')
return false
}
return true
}
const submit = () => {
if (!validateForm()) {
return
}
// 验证通过,提交表单
doSubmit()
}
场景 3: 删除操作
const handleDelete = async item => {
const { confirm } = await showConfirm(`确定删除「${item.name}」吗?`)
if (!confirm) {
return
}
showLoading('删除中...')
try {
const res = await deleteAPI({ id: item.id })
if (res.code === 1) {
showSuccess('删除成功')
// 刷新列表
loadList()
} else {
showError(res.msg || '删除失败')
}
} catch (err) {
console.error(err)
showError('删除出错,请重试')
} finally {
hideLoading()
}
}
场景 4: 权限检查
const checkPermission = async () => {
try {
const res = await checkPermissionAPI()
if (res.code === 1) {
// 有权限,继续操作
return true
} else {
// 无权限,提示用户
showError('暂无权限访问此功能')
return false
}
} catch (err) {
console.error(err)
showError('权限检查失败')
return false
}
}
场景 5: 用户引导
const showFirstTimeGuide = async () => {
const { confirm } = await showConfirm('首次使用需要完善个人信息', '温馨提示', {
confirmText: '去完善',
cancelText: '稍后再说'
})
if (confirm) {
go('/pages/profile/edit')
}
}
💡 最佳实践
1. 错误提示要具体
// ❌ 不好
showError('操作失败')
// ✅ 好
showError('网络连接失败,请检查网络设置')
showError('身份证号格式不正确')
2. 成功提示要简洁
// ❌ 不好
showSuccess('您的预约已经成功提交,我们会尽快处理,请耐心等待')
// ✅ 好
showSuccess('预约成功')
3. Loading 必须成对出现
// ❌ 不好:忘记 hideLoading
const loadData = async () => {
showLoading('加载中...')
const res = await getDataAPI()
// 缺少 hideLoading()
}
// ✅ 好:使用 try-finally
const loadData = async () => {
showLoading('加载中...')
try {
const res = await getDataAPI()
// 处理数据
} finally {
hideLoading()
}
}
4. 确认对话框内容要清晰
// ❌ 不好
showConfirm('确定?')
// ✅ 好
showConfirm('确定删除「张三」的预约记录吗?此操作不可恢复')
🔍 类型说明
| 类型 | 函数 | 时长 | 适用场景 |
|---|---|---|---|
| 错误 | showError |
3秒 | 操作失败、网络异常、验证失败 |
| 成功 | showSuccess |
2秒 | 操作成功、保存成功 |
| 信息 | showInfo |
2秒 | 友好提示、操作指引 |
| 加载 | showLoading |
持续显示 | 等待异步操作完成 |
| 确认 | showConfirm |
等待用户 | 删除、退出等危险操作 |
📚 相关文档
最后更新: 2026-02-10 维护者: Claude Code