useToast()

useToast() 提供全局轻量提示(Toast)的调用接口。你可以在任意组件、composable 或异步回调中直接调用,无需在模板中维护状态或手动管理显示逻辑。提示消息由 SwToast 组件统一渲染,通常挂载在布局根节点。

基础用法

四个语义快捷方法

加载中...
const { success, error, warning, info } = useToast()

success('保存成功')
error('上传失败', { title: '文件错误' })
warning('存储空间不足', { duration: 8000 })
info('新版本已发布,请刷新页面')

使用完整参数

胶囊 vs 卡片两种形态

加载中...

duration:快关 / 默认 / 常驻

加载中...

通过 add() 方法可传入完整配置:

const { add } = useToast()

add({
  message: '操作成功,数据已更新',
  title: '提示',
  type: 'success',
  duration: 4000, // 4 秒后自动消失,传 0 则不自动消失
})

返回值

名称类型说明
toastsDeepReadonly<Ref<ToastItem[]>>当前所有显示中的提示列表(只读响应式,禁直接 push/splice,请用 add/remove)
add(options: ToastOptions) => void新增一条提示
remove(id: string) => void根据 id 移除指定提示
success(message: string, opts?) => void显示成功类型提示(绿色)
error(message: string, opts?) => void显示错误类型提示(红色)
warning(message: string, opts?) => void显示警告类型提示(橙色)
info(message: string, opts?) => void显示信息类型提示(蓝色)

ToastOptions 参数说明

参数类型必填默认值说明
messagestring✓—提示正文内容
titlestring—提示标题(可选),显示在正文上方
type'success' | 'error' | 'warning' | 'info'✓—提示类型,控制图标和颜色(add() 无默认,须显式指定;快捷方法已自动设置)
durationnumber3000自动关闭延迟毫秒数,设为 0 则不自动关闭

注意事项

  • 需要在布局中引入 SwToast 组件:Toast 消息由 SwToast 渲染并管理显示队列。请在你的布局文件(如 default.vue)中添加 <SwToast />,否则调用后无任何视觉反馈。
  • 快捷方法 success()、error()、warning()、info() 均支持第二个参数覆盖除 type 之外的所有选项。
  • toasts 是响应式数组,如需实现自定义 Toast UI,可直接读取该数组并结合 remove(id) 实现完全自定义的渲染。