Skip to content

Message 消息提示 ​

命令式全局消息提示,支持类型图标、加载态、悬停暂停、倒计时进度条、位置偏移、数量上限、富内容与 promise 链。进出场动画走 transform/opacity,尊重 prefers-reduced-motion。

基础用法 ​

六种类型

成功错误警告信息疑问加载

类型图标 ​

内置类型自带图标(成功/错误/警告/疑问/信息),可通过 icon 自定义(lookupIcon 查表通道,registerIcon 注册的自定义图标同样可用),show-icon="false" 关闭。

类型图标与自定义

自定义图标(msg-heart)隐藏图标

Loading 与异步流 ​

message.loading() 默认不自动关闭(可 update 收尾),配合 message.update(key, options) 组成轻量异步流。

Loading 与异步流

开始上传(loading)更新为成功关闭该条

自定义时长与手动关闭 ​

自定义时长

2 秒5 秒不自动关闭(0)手动关闭不可关闭

点击消息 ​

点击消息体触发 onClick 回调并关闭消息(oas-close 的 source 为 click);关闭按钮走 close 来源。

点击消息关闭

弹出可点击消息查看点击次数

悬停/焦点暂停 ​

pause-on-hover 默认开启:悬停消息或聚焦关闭按钮时暂停自动关闭计时(剩余时长记账),移开继续;页面隐藏(visibilitychange)同样暂停。

悬停暂停

10 秒自动关闭弹出后暂停/恢复暂停恢复

倒计时进度条 ​

show-progress 开启自动关闭倒计时进度条,动画时长与 duration 同步;悬停暂停时进度条同步暂停。

倒计时进度条

带进度条(5 秒)带进度条(8 秒)

位置与偏移 ​

placement 限 top / bottom 两向(顶部居中为默认,center/角落归 toast 形态);offset 为单数字偏移(px,默认 16)。

位置与偏移

topbottomtop + offset 80bottom + offset 40

数量上限 ​

max 设置栈上限,超出时丢最旧派(最早的消息先关闭)。

数量上限

重置连发(上限 2)

富内容 ​

content 支持 string | Node,Node 直接注入文本区渲染(不做 innerHTML 通道)。

富内容

文本内容富内容(Node)

Promise 链 ​

message.promise(promise, { loading, success, error }):loading → 成功切 success / 失败切 error,成功后 3 秒自动关闭。

Promise 链

模拟成功模拟失败

分组消息与重复计数 ​

相同 group 的消息合并为一条,重复触发递增计数(×n);repeatNum: true 时右上角显示重复计数徽标;不同 group 相互独立。

分组消息

保存(连点试试)同步(另一组)

定制杂项 ​

avatar(Node 或 slot="avatar")、spinner 自定义(图标名或 Node)、registerType 自定义类型注册、mask 遮罩(点击遮罩关闭)。

定制杂项

头像(avatar)自定义 spinner自定义类型遮罩

声明式用法 ​

<oas-message> 也支持声明式使用:属性与命令式 options 一一对应,文本走内容区,富内容走 slot="content"。

声明式用法

声明式成功消息倒计时进度演示(15 秒自动关闭,悬停暂停)声明式 + 静态徽标富内容声明式:支持插槽

App 全局默认 ​

<oas-app message='{...}'> 可配置 message 全局默认(调用参数优先):duration / closable / pauseOnHover / placement / offset / max / showProgress / showIcon / mask / repeatNum。

App 全局默认

启用全局默认(底部 + 上限 2 + 无图标)清除全局默认发消息局部覆盖

API ​

方法 ​

方法说明
message.info(content, options?)信息提示,返回 { close, pause, resume }
message.success(content, options?)成功提示
message.warning(content, options?)警告提示
message.error(content, options?)错误提示
message.question(content, options?)疑问提示(问号图标)
message.loading(content, options?)加载提示(默认不自动关、不可关)
message.show(type, content, options?)通用入口:内置类型或 registerType 注册的自定义类型
message.update(key, { content, type?, duration? })更新已存在消息,key 不存在则新建
message.destroy(key)关闭指定 key 的消息
message.promise(promise, { loading, success, error })promise 链:loading → success/error
message.registerType(name, { icon?, color?, closable? })注册自定义消息类型
destroyAllMessage()清空全部消息

oas-message ​

属性 ​

属性说明类型默认值
closable是否显示关闭按钮(默认 true;loading 态下隐藏)stringtrue
count合并计数(>1 时内容后显示 ×n)string0
duration自动关闭时长(ms),0 表示不自动关闭string3000
group分组标识:同组消息合并为一条——
icon自定义图标(声明式元素用法);覆盖 type 默认图标string—
key唯一标识:供 message.update / message.destroy 定位——
mask显示页面遮罩;点击遮罩关闭,oas-close detail.source 为 maskboolean—
pause-on-hover悬停暂停计时(默认开),移出恢复剩余时长stringtrue
placement声明式元素用法显示位置:top(默认)/ bottom——
repeat-num重复计数徽标:同内容连发时合并显示次数string—
show-icon是否显示类型图标(默认 true;false 纯文字)stringtrue
show-progress显示倒计时进度条(时长同步)boolean—
type消息类型:info/success/warning/error/loading/questionstringinfo

事件 ​

事件说明
oas-close消息关闭时派发(自动关闭/关闭按钮/destroy/点击/遮罩),detail: { key?, source }(source:auto/close/destroy/click/mask)

插槽 ​

名称说明
avatar头像插槽(消息前置)
content正文富内容插槽

CSS 变量 ​

CSS 变量说明默认值
--oas-glass-blur—none
--oas-glass-refraction液态玻璃边缘折射滤镜(data-glass 生效,默认 none);局部停用覆盖为空值(--oas-glass-refraction: ;)——不得用 none(与 button 态的 brightness() 混排会使整条 filter 声明非法)none
--oas-glass-ring—transparent
--oas-message-anim-in—220ms
--oas-message-anim-out—180ms
--oas-msg-type-color—var(--oas-color-border)

options ​

  • { duration?, group?, key?, onClose?, closable?, pauseOnHover?, placement?, offset?, max?, icon?, showIcon?, showProgress?, repeatNum?, mask?, onClick?, avatar?, spinner? }
  • content(首参)支持 string | Node 富内容;group 同组合并并递增计数;key 供 update / destroy 定位;onClose 关闭回调;onClick 点击消息体回调(触发后以 click 来源关闭)。
  • duration 默认 3000ms,传 0 表示不自动关闭;offset 默认 16px;max 超出丢最旧派。
  • 悬停/聚焦关闭按钮/页面隐藏自动暂停计时(剩余时长记账);error 类型使用 role="alert",其余使用 role="status"。
  • 进出场动画走 transform/opacity(时长 CSS 变量 --oas-message-anim-in / --oas-message-anim-out 开口),尊重 prefers-reduced-motion。
  • 颜色只走 CSS 变量 token;registerType 的 color 为显式注入的任意 CSS 颜色(组件默认不硬编码色值)。

基于 MIT OR Apache-2.0 双许可发布