vue2与vue3项目中,分别使用element组件的message消息提示只出现一次的实现
在Vue 2项目中,可以通过全局方法Message
来实现Element UI的message
组件只出现一次:
import { Message } from 'element-ui';
// 自定义消息提示函数,确保只提示一次
function messageOnce(message, type) {
const msgBox = Message.get(); // 获取当前所有message的实例
let found = false;
msgBox.forEach(vnode => {
if (vnode.componentInstance.message === message) {
found = true;
}
});
if (!found) {
Message({
message,
type,
});
}
}
// 使用
messageOnce('这是一条只出现一次的信息', 'success');
在Vue 3项目中,Element Plus的ElMessage
服务已经是全局的,可以直接使用,但需要自定义一个函数来确保只提示一次:
import { ElMessage } from 'element-plus';
// 自定义消息提示函数,确保只提示一次
function messageOnce(message, type) {
const msgBox = ElMessage.getContainer(); // 获取消息容器
if (!msgBox.innerText.includes(message)) {
ElMessage({
message,
type,
});
}
}
// 使用
messageOnce('这是一条只出现一次的信息', 'success');
请注意,上述代码中的message
和type
参数需要根据Element UI或Element Plus的Message
组件的API进行相应的调整。
评论已关闭