Notification 通知
在页面角落显示全局的通知提醒信息。
基础用法
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 |
position | 自定义位置 | 枚举 | top-right |
showClose | 是否显示关闭按钮 | boolean | true |
onClose | 关闭时的回调函数 | Function | — |
onClick | 点击通知时的回调函数 | Function | — |
offset | 距离屏幕顶部边缘的偏移量。同一时刻的每个通知实例都应具有相同的偏移量 | number | 0 |
appendTo | 设置通知的根元素,默认为 document.body | CSSSelector / HTMLElement | — |
zIndex | 初始 zIndex | number | 0 |
closeIcon 2.9.8 | 自定义关闭图标 | string / Component | Close |
方法
Notification
和 this.$notify
会返回当前的通知实例。要手动关闭该实例,可以对其调用 close
。
名称 | 描述 | 类型 |
---|---|---|
关闭 | 关闭通知 | Function |