Message 消息 ​

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

基础用法 ​

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

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

类型 ​

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

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

朴素样式 ​

设置 plain 使用朴素背景。

可手动关闭 ​

可显示关闭按钮。

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

使用 HTML 字符串 ​

message 支持 HTML 字符串。

dangerouslyUseHTMLString 为 true 时按 HTML 解析 message。

WARNING

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

合并相同内容 ​

相同内容可合并展示。

grouping 为 true 时合并相同 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距离视口边缘偏移(placement 为 top* 时距顶部,bottom* 时距底部)number16
placement位置enumtop
appendTo挂载根元素,默认 document.bodyCSSSelector / HTMLElement—
grouping是否合并相同内容(VNode 类型不支持)booleanfalse
repeatNum重复次数角标初始值,配合 grouping 使用number1

方法 ​

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

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