Message 消息提示
用于在活动中显示反馈。与“通知”的区别在于,“通知”通常用于显示系统级的被动通知。
基础用法
默认情况下显示在顶部,3 秒后消失。 您可以使用 placement
属性控制位置。
Message 的设置与 notification 非常相似,因此部分选项在此不再详述。 您可以结合 notification 文档查看下面的选项表来理解它。 Element Plus 为调用注册了一个 $message
方法。 Message 可以接受一个字符串或一个 VNode 作为参数,它将显示为主体。
类型
用于显示成功、警告、消息和错误活动的反馈。
当您需要更多自定义时,Message 组件还可以接受一个对象作为参数。 例如,设置 type
的值可以定义不同的类型,其默认值为 info
。 在这种情况下,主体作为 message
的值传入。 此外,我们还为不同类型注册了方法,因此您可以直接调用它而无需传递类似 open4
的类型。 primary
已在 2.9.11 中添加。
Plain 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
的相同内容将被合并。
Placement 位置 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 | — |
是否将 message 解析为 HTML 字符串 | 是否将 `message` 视为 HTML 字符串 | boolean | false |
customClass | Message 的自定义类名 | string | '' |
duration | 显示时长,毫秒。设为 0 则不会自动关闭 | number | 3000 |
显示关闭 | 是否显示关闭按钮 | boolean | false |
onClose | 关闭时的回调函数,以消息实例为参数 | Function | — |
offset | 设置到视口边缘的距离(placement 为 'top' 时为 top,placement 为 'bottom' 时为 bottom) | number | 16 |
placement 2.11.0 | 消息放置位置 | 枚举 | 上 |
追加到 | 设置消息的根元素,默认为 `document.body` | CSSSelector / HTMLElement | — |
分组 | 合并内容相同的消息,不支持 VNode 类型的消息 | boolean | false |
重复次数 | 重复次数,类似于徽章,与 `grouping` 一起使用时作为初始数字 | number | 1 |
方法
`Message` 和 `this.$message` 返回当前的 Message 实例。 要手动关闭实例,您可以在其上调用 `close`。
名称 | 描述 | 类型 |
---|---|---|
关闭 | 关闭消息 | Function |