消息提示
用于显示活动后的反馈信息。与通知(Notification)的区别在于,后者通常用于显示系统级别的被动通知。
基础用法
默认在顶部显示,3 秒后消失。你可以通过 placement 属性控制位置。
消息提示的设置与通知(Notification)非常相似,因此部分选项在此不再详细解释。你可以结合下面的选项表和通知文档来理解。Element Plus 已经注册了一个 $message 方法用于调用。消息提示可以接受字符串或 VNode 作为参数,并将其显示为主体内容。
类型
用于显示成功、警告、消息和错误等操作的反馈信息。
当需要更多自定义时,消息提示组件也可以接受一个对象作为参数。例如,设置 type 的值可以定义不同类型,默认为 info。在这种情况下,主体内容会作为 message 的值传入。此外,我们还为不同类型注册了方法,因此你可以直接调用,而无需像 open4 那样传递类型。primary 已在 2.9.11 中添加。
朴素 2.6.3
设置 plain 属性可拥有朴素背景。
可关闭
可添加关闭按钮。
默认消息提示不能手动关闭。如果你需要一个可关闭的消息提示,可以设置 showClose 字段。此外,与通知一样,消息提示具有可控制的 duration。默认持续时间为 3000 毫秒,设置为 0 则不会自动消失。
使用 HTML 字符串
message 属性支持 HTML 片段。
将 dangerouslyUseHTMLString 设置为 true,message 就会被当作 HTML 字符串处理。
警告
虽然 message 属性支持 HTML 字符串,但在网站上动态渲染任意 HTML 是非常危险的,因为这很容易导致 XSS 攻击。 因此,当 dangerouslyUseHTMLString 开启时,请确保 message 的内容是可信的,绝不要将 message 赋值为用户提供的内容。
分组
合并相同内容的消息。
将 grouping 设置为 true 后,相同内容的 message 将被合并。
位置 2.11.0
控制消息出现的位置。消息可以在视口顶部(默认)或其他位置显示。
全局方法
Element Plus 已在 app.config.globalProperties 上添加了一个全局方法 $message。因此在 Vue 实例中,你可以像本页中一样调用 Message。
局部导入
import { ElMessage } from 'element-plus'在这种情况下,你应该调用 ElMessage(options)。我们也为不同类型注册了方法,例如 ElMessage.success(options)。你可以调用 ElMessage.closeAll() 来手动关闭所有实例。
应用上下文继承 2.0.3
现在消息提示构造函数的第二个参数接受 context,这允许你将当前应用程序的上下文注入到消息提示中,从而继承应用程序的所有属性。
您可以像这样使用它
提示
如果你全局注册了 ElMessage 组件,它将自动继承你的应用上下文。
import { getCurrentInstance } from 'vue'
import { ElMessage } from 'element-plus'
// in your setup method
const { appContext } = getCurrentInstance()!
ElMessage({}, appContext)API
配置项
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| message | 消息文本 | string / VNode / Function | '' |
| type | 消息类型 | 枚举 | 信息 |
| 朴素 2.6.3 | 消息是否为朴素样式 | boolean | false |
| icon | 自定义图标组件,会覆盖 type | string / Component | — |
| dangerouslyUseHTMLString | message 是否被当作 HTML 字符串处理 | boolean | false |
| customClass | 消息提示的自定义类名 | string | '' |
| duration | 显示时长,毫秒。设为 0 则不会自动关闭 | number | 3000 |
| showClose | 是否显示关闭按钮 | boolean | false |
| onClose | 关闭时的回调函数,参数为当前消息提示实例 | Function | — |
| offset | 设置距离视口边缘的距离(placement 为 'top' 时指顶部距离,为 'bottom' 时指底部距离) | number | 16 |
| placement 2.11.0 | 消息放置位置 | 枚举 | 上 |
| 挂载容器 | 设置消息的根元素,默认为 document.body | CSSSelector / HTMLElement | — |
| 分组 | 合并内容相同的消息,不支持 VNode 类型的消息 | boolean | false |
| 重复次数 | 重复的次数,类似于徽章,与 grouping 一起使用时作为初始数字 | number | 1 |
方法
Message 和 this.$message 返回当前的消息提示实例。要手动关闭实例,你可以调用其 close 方法。
| 名称 | 描述 | 类型 |
|---|---|---|
| 关闭 | 关闭消息提示 | Function |