Message 消息

用于操作后的轻量反馈。与通知的区别在于,通知更常用于系统级、被动推送的信息。

基础用法

默认从顶部出现,3 秒后消失。可通过 placement 控制位置。

用法与通知相近,部分字段不再赘述;可对照下方选项表与通知文档理解。Uniboot UI 会注册全局 $messagemessage 可为字符串或 VNode 作为主体内容。

类型

用于成功、警告、消息与错误等反馈。

需要更多定制时,可传入对象参数,例如 type 定义类型,默认 info,主体放在 message。亦提供各类型快捷方法,可直接调用而无需传 type

朴素样式

设置 plain 使用朴素背景。

可手动关闭

可显示关闭按钮。

默认不可手动关闭;设置 showClose 可关闭。与通知相同,duration 控制停留时长,默认 3000ms,设为 0 则不自动消失。

使用 HTML 字符串

message 支持 HTML 字符串。

dangerouslyUseHTMLStringtrue 时按 HTML 解析 message

WARNING

虽然 message 支持 HTML,但动态渲染不可信 HTML 易导致 XSS。启用 dangerouslyUseHTMLString 时请确保内容可信,切勿将用户输入直接作为 message

合并相同内容

相同内容可合并展示。

groupingtrue 时合并相同 message

位置

控制消息出现位置,可在视口顶部(默认)或其他方位。

全局方法

完整引入后会在 app.config.globalProperties 注册 $message,选项式 API 中可如本文调用。

按需引入

ts
import { UMessage } from 'uniboot-ui'

此时使用 UMessage(options),亦提供 UMessage.success(options) 等类型方法。可调用 UMessage.closeAll() 关闭全部实例。

应用上下文继承

构造函数第二个参数可传入 context,以继承当前应用上下文。

TIP

若已全局注册 UMessage,将自动继承应用上下文。

ts
import { getCurrentInstance } from 'vue'
import { UMessage } from 'uniboot-ui'

// 在 setup 中
const { appContext } = getCurrentInstance()!
UMessage({}, appContext)

消息 API

选项

名称说明类型默认值
message消息文本string / VNode / Function''
type类型enuminfo
plain是否朴素样式booleanfalse
icon自定义图标,覆盖 typestring / Component
dangerouslyUseHTMLStringmessage 是否按 HTML 解析booleanfalse
customClass自定义类名string''
duration显示时长(毫秒),0 表示不自动关闭number3000
showClose是否显示关闭按钮booleanfalse
onClose关闭回调,参数为消息实例Function
offset距离视口边缘偏移(placementtop* 时距顶部,bottom* 时距底部)number16
placement位置enumtop
appendTo挂载根元素,默认 document.bodyCSSSelector / HTMLElement
grouping是否合并相同内容(VNode 类型不支持)booleanfalse
repeatNum重复次数角标初始值,配合 grouping 使用number1

方法

Messagethis.$message 返回当前实例,可调用 close 手动关闭。

名称说明类型
close关闭消息Function