通知
在页面的角落显示全局通知消息。
基础用法
Element Plus 注册了 $notify 方法,它接收一个对象作为参数。 在最简单的情况下,你可以设置 title 字段和 message 字段来设置通知的标题和正文。 默认情况下,通知在 4500ms 后自动关闭,但通过设置 duration 你可以控制其显示时间。 特别地,如果设置为 0,它将不会自动关闭。 注意 duration 接收一个以毫秒为单位的 Number。
带有类型
我们提供了四种类型:success、warning、info 和 error。
Element Plus 提供了五种通知类型:primary、success、warning、info 和 error。 它们通过 type 字段设置,其他值将被忽略。 我们还为这些类型注册了方法,可以直接调用,如 open3 和 open4,而无需传递 type 字段。 primary 已在 2.9.11 中添加。
自定义位置
通知可以从你喜欢的任何角落弹出。
position 属性定义了通知从哪个角落滑入。 它可以是 top-right、top-left、bottom-right 或 bottom-left。 默认为 top-right。
带有偏移
自定义通知距离屏幕边缘的偏移量。
设置 offset 属性来自定义通知距离屏幕边缘的偏移量。 注意,同一时刻的每个通知实例都应具有相同的偏移量。
使用 HTML 字符串
message 属性支持 HTML 片段。
将 dangerouslyUseHTMLString 设置为 true,message 就会被当作 HTML 字符串处理。
警告
虽然 message 属性支持 HTML 字符串,但在网站上动态渲染任意 HTML 是非常危险的,因为这很容易导致 XSS 攻击。 因此,当 dangerouslyUseHTMLString 开启时,请确保 message 的内容是可信的,绝不要将 message 赋值为用户提供的内容。
使用函数作为消息 2.9.0
message 可以是 VNode。
在 2.9.0 之后,message 支持一个返回值为 VNode 的函数。
隐藏关闭按钮
可以隐藏关闭按钮
将 showClose 属性设置为 false,这样用户就无法关闭通知。
全局方法
Element Plus 为 app.config.globalProperties 添加了一个全局方法 $notify。 因此在 vue 实例中,你可以像我们在本页中所做的那样调用 Notification。
局部导入
import { ElNotification } from 'element-plus'
import { CloseBold } from '@element-plus/icons-vue'
ElNotification({
title: 'Title',
message: 'This is a message',
closeIcon: CloseBold,
})在这种情况下,你应该调用 ElNotification(options)。 我们还为不同类型注册了方法,例如 ElNotification.success(options)。 你可以调用 ElNotification.closeAll() 来手动关闭所有实例。 在 2.10.5 中,你可以通过调用 ElNotification.updateOffsets(position) 手动更新特定方向上所有实例的偏移量。
应用上下文继承 > 2.0.4
现在通知接收一个 context 作为消息构造函数的第二个参数,这允许你将当前应用的上下文注入到通知中,从而继承应用的所有属性。
您可以像这样使用它
提示
如果你全局注册了 ElNotification 组件,它将自动继承你的应用上下文。
import { getCurrentInstance } from 'vue'
import { ElNotification } from 'element-plus'
// in your setup method
const { appContext } = getCurrentInstance()!
ElNotification({}, appContext)API
配置项
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| title | title | string | '' |
| message | 描述文本 | string / VNode / Function | '' |
| dangerouslyUseHTMLString | message 是否被当作 HTML 字符串处理 | boolean | false |
| type | 通知类型 | 枚举 | '' |
| icon | 自定义图标组件。 它将被 type 覆盖 | string / Component | — |
| customClass | 通知自定义类名 | string | '' |
| duration | 关闭前的持续时间。 如果设置为 0,则不会自动关闭 | number | 4500 |
| 位置 | 自定义位置 | 枚举 | 右上角 |
| showClose | 是否显示关闭按钮 | boolean | true |
| onClose | 关闭时的回调函数 | Function | — |
| onClick | 点击通知时的回调函数 | Function | — |
| offset | 距离屏幕顶部的偏移量。 同一时刻的每个通知实例都应具有相同的偏移量 | number | 0 |
| appendTo | 设置通知的根元素,默认为 document.body | CSSSelector / HTMLElement | — |
| zIndex | 初始 zIndex | number | 0 |
| 关闭图标 2.9.8 | 自定义关闭图标 | string / Component | 关闭 |
方法
Notification 和 this.$notify 返回当前的通知实例。 要手动关闭实例,你可以调用其 close 方法。
| 名称 | 描述 | 类型 |
|---|---|---|
| 关闭 | 关闭通知 | Function |