重写element-ui中的Message,实现相同消息提示只弹一个

Element UI实现每次只弹出一个Message消息提示 在开发Web应用程序时,我们经常需要使用消息提示来向用户展示重要信息。Element UI提供了一个方便易用的组件——Message,可以用于显示各种类型的消息提示。然而,默认情况下,当多个消息提示同时触发时,它们会依次累积在页面上,导致界面上出现多个消息提示。本篇博客将介绍如何通过对Element UI的Message组件做简单的扩展,使得每次只弹出一个消息提示,从而提升用户体验。通过对Element UI的Message组件进行简单的扩展,我们实现了每次只弹出一个消息提示的功能。 阅读详情

element-ui中的message在实际使用过程中很多时候会遇到,相同的message会在短时间内同时出现在页面上,这种情况下是没有必要的。比如一个错误信息提示被放在定时器中进行:定时调用某个接口,然后这个接口会返回一个message的话,在定时器时间设置很短的情况下,就会出现短时间内弹出很多相同的message。我们可以通过重写element-ui的message来解决这个问题。

1.新建一个js文件,比如element_api.js

/* eslint-disable */
import { Message } from 'element-ui'

const showMessage = Symbol('showMessage')
/**
 * 封装element-ui message方法,只有在页面没有message或者没有相同message的情况下才弹出该message
 */
class ElMessage {
  success (options, single = true) {
    this[showMessage]('success', options, single)
  }
  warning (options, single = true) {
    this[showMessage]('warning', options, single)
  }
  info (options, single = true) {
    this[showMessage]('info', options, single)
  }
  error (options, single = true) {
    this[showMessage]('error', options, single)
  }
  /* eslint-disable */
  [showMessage] (type, options, single) {
    console.log('message options:',options)
    if (single) {
      //获取页面所有已经存在的message
      let doms = document.getElementsByClassName('el-message');
      //el-message__content
      //设置值控制显示当前message
      let canShow = true;
      //遍历获取到的message DOM集合
      for( let i=0; i<doms.length; i++){
        //如果页面已存在的message中有显示文本和当前message相同的情况,canShow设置为false
        if(options == doms[i].getElementsByClassName('el-message__content')[0].innerHTML){
          canShow = false;
        }
      }
      //如果页面不存在message或者canShow==true,则正常执行该message
      if(doms.length === 0 || canShow){
        Message[type](options)
      }
    } else {
      Message[type](options)
    }
  }
}

export {
  ElMessage
}

2.使用方法

(1) 作为vue实例的属性来调用,跟element一样
//在main.js中引入
import { ElMessage } from '@/assets/js/element_api.js'
Vue.prototype.$message = new ElMessage()
//接下来就可以在组件通过 this.$message    的方式调用了
(2) 直接使用,比如我在axios拦截器js文件中使用
import { ElMessage } from '@/assets/js/element_api.js'
let Message = new ElMessage()

//使用
// http响应拦截器
axios.interceptors.response.use(res => {
  if(res.data.error == 5004){
    //登录失效
    Message.error('登录失效,请重新登录!')
    router.push('/')
  }
  return res
},
基于copaw-wechat的微信UI自动化:原理、实战与避坑指南 UI自动化是一种通过程序模拟用户操作图形界面(GUI)的技术,其核心原理是借助操作系统API或图像识别来驱动鼠标、键盘,完成点击、输入等交互。这项技术的价值在于能够以贴近真实用户行为的方式,自动化处理各类桌面应用中的重复性任务,有效提升工作效率并降低人为错误。在Python生态中,诸如pyautogui、pywinauto等库为UI自动化提供了基础能力。其典型应用场景涵盖软件测试、数据录入、办公流程自动化以及特定应用的机器人开发。本文聚焦于微信PC客户端的自动化需求,深入探讨了基于copaw-wechat框 阅读详情

相关推荐

AI如何重写软件交付方式:从代码生成到意图对齐的范式迁移

软件交付正经历一场由大模型驱动的底层范式变革——其核心不再是‘能否写出正确代码’,而是‘能否精准捕获并实现业务意图’。这一转变源于AI对编程语言的理解已超越自然语言指令解析能力,使交付重心从语法正确性转向语义保真度;交付物从静态二进制包演进为可交互、可验证的轻量级原型;协作模式则从个人编码升级为团队共建提示词资产。在金融、电商、工业等真实场景中,高质量提示词已成为新型交付契约,支撑小时级需求闭环与跨角色即时对齐。本文聚焦AI原生交付的四大支点与实操方法论,揭示如何将业务规则‘编译’为可执行工程指令。

481

如何让Element UI的Message消息提示每次只弹出一个

Element UI的Message消息提示是点击一次触发一次的。在封装接口中调用失败会返回多个弹窗,导致很不友好,所以就出了一下参考 解决方案 import { Message } from 'element-ui' const showMessage = Symbol('showMessage') class DonMessage { success(options, single = true) { this[showMessage]('success', option

大前端薯条铭的博客 5209

UI自动化脚本自修复系统:Selenium+GPT-4o实现故障诊断与代码闭环

UI自动化测试中,元素定位失效(如NoSuchElementException)是最常见且高频的稳定性瓶颈,其本质是脚本缺乏对运行时页面状态的感知与响应能力。本文从UI自动化基础原理出发,解析Selenium执行失败的根本原因——静态定位器与动态DOM之间的语义断层;进而引入大模型(GPT-4o)作为智能归因与修复引擎,强调其价值不在于API调用本身,而在于如何让AI真正‘看见’页面结构、理解元素状态、锚定失败上下文;通过DOM快照压缩、渐进式诊断协议、沙箱验证与AST级代码注入等关键技术,构建可落地的自愈

weixin_30357231的博客 413

element-ui多次弹出message消息提示,仅显示一个

项目中最常用的UI框架就是element-ui,经常在点击操作按钮时候多次点击上一个弹窗未消失,下一个又出现,类似于ant-vue里面提供了 this.$message.destroy()方法,能够销毁。 但是在饿了么里面是不存在的,只能对此重写处理,代码如下 import { Message } from 'element-ui' let messageInstance = null const resetMessage = options => { if (messa...

一梦成回忆 2611

谷粒商城 - 个人笔记(集群部署篇一)

电商后台管理系统+电商系统,掌握微服务的全套方案。该系统有商品服务、仓储服务、订单服务、购物车服务、检索服务、认证中心服务、网关服务、用户服务、秒杀服务、第三方服务。使用SpringBoot+SpringCloud并配套SpringCloud Alibaba系列,引入全套微服务治理方案:Nacos注册中心/配置中心、Feign远程调用、Gateway网关、Redisson缓存、基于ElasticSearch7全文检索、异步编排与线程池、RabbitMQ柔性事务方案、Redisson分布式锁、分布式信号量等。

知行 4008

BIOS/UEFI完全指南:从开机自检到超频魔改的底层硬件控制

计算机启动过程始于固件层,其核心是负责硬件初始化与引导的系统软件。传统BIOS基于16位实模式,寻址能力有限,而现代UEFI采用保护模式,支持图形界面与安全启动,实现了从概念到架构的革新。这一演进带来了显著的技术价值:更快的启动速度、更强的安全性以及对大容量存储设备的原生支持。在工程实践中,无论是解决“虚拟化技术禁用”问题、调整内存XMP配置以提升性能,还是为老主板“魔改”添加NVMe支持,都需要深入理解并操作BIOS/UEFI设置。掌握这些底层交互能力,是进行硬件调试、系统优化与故障排查的关键,也是连接抽

weixin_34236869的博客 458

Message 消息提示每次只弹出1个,不能同时出现2个

点击 Message 消息提示同时出现2个或者多个,设置成只弹一个。

m0_74245828的博客 1728

利用docx4j与docx4j-ImportXHTML高效实现HTML到Word的自动化转换

本文详细介绍了如何利用docx4j与docx4j-ImportXHTML库,在Java环境中高效实现HTML到Word文档的自动化转换。内容涵盖从环境搭建、核心依赖配置,到集成Spring Boot REST API的完整实战流程,并深入解析了处理图片、CSS样式、字体设置以及使用模板保证样式统一等高级技巧与常见问题解决方案,帮助开发者构建稳定的文档自动化生成流水线。

cnn8visionary的博客 366

vue项目中重写$message使得多次点击时message提示只显示一条

elementUI中的message插件,当点击按钮报错,用户多次点击时,页面会出现多个错误的提示信息,用户使用效果不好。3.在页面中正常使用即可。

程序员一枚,仅记录工作中的难点 2611

别再混淆了!深入浅出图解四元数姿态控制中的‘误差四元数’(附四种定义对比与仿真)

本文深入解析四元数姿态控制中的误差四元数定义差异,对比四种常见定义(如Q₀∘Q⁻¹与Q⁻¹∘Q₀)及其对PD控制性能的影响。通过刚体动力学仿真验证,揭示定义二(Q⁻¹∘Q₀)在无人机和航天器控制中的最优性能,提供工程实践建议与参数整定技巧,帮助开发者避免常见陷阱并提升控制效率。

weixin_42528191的博客 277

单粒子翻转对FPGA的影响及解决方法

单粒子翻转对FPGA的影响及解决方法

航天领域资深码农,型号经验丰富,一线干货分享 2446

解决element 弹出多个message消息提示 问题

在新版本的element中,官方对 message消息提示 做了修改,修改成一个请求对应一个提示语,这就会导致一个多条消息提示共存的一个问题,而很多情况下,这多条消息提示的内容是一样的,从用户的体验来说,并不友好 我们可以通过 重写 message 来解决这个问题 首先 先写一个resetMessage.js import { Message } from '...

前端攻城狮 1万+

4.1 AI Agent对比分析:Coze、Dify、LangGraph,如何选择Agent框架

本文对比分析了三大主流AI Agent框架:Coze(字节跳动平台,可视化开发,适合快速企业应用)、Dify(开源企业级方案,支持定制部署)和LangGraph(代码开发灵活,适合复杂需求)。选择指南建议:需要快速开发选Coze,需开源定制选Dify,复杂灵活需求选LangGraph。核心要点包括理解各框架特点、根据需求评估选择,并提供了实践建议。下节将介绍Coze平台的实战应用。

yonggeit的博客 3145

element-ui使用Message,出现相同消息提示时只弹出一个的解决方案

最近在项目的使用过程中,出现了网络异常时所有接口同时报了同样的错误消息提示,所以为了解决这个问题决定要出现相同的消息时只弹出一个提示框。 在这里我找到了以下两篇文章: https://blog.youkuaiyun.com/dongguan_123/article/details/101290164 https://blog.youkuaiyun.com/Linho/article/details/105856686 创建一个js文件 /**重写elemen-ui的message,防止出现同一时间弹出多个相同信息的messag

立于浮华之世,奏响天籁之音 1947

YOLO26优化:注意力魔改 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 490

Dify 本地部署教程

到这里,Dify 就安装完成了,更多操作设置可以参考官方文档,Dify 和 FastGPT 基本上差不多,也可以同时安装一下 FastGPT 进行体验~Docker Compose 部署 | Dify。

Muti-Agent 6652

Vue使用element-ui,相同的message只弹出一个

创建一个js文件 /** 重写elemen-ui的message,防止出现同一时间弹出多个相同信息的message弹框 */ import { Message } from 'element-ui' const resetMessage = (options) => { let doms = document.getElementsByClassName('el-message') let canShow = true for (let i = 0; i < doms.length;

weixin_45329799的博客 1294

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

element-ui+vue弹出多个message的问题处理

如果出现网络问题,刷新页面,或者有多个接口请求就会出现报错,那么提示就会连续弹出几个: 解决方案:重写Message。弹出前判断是否有相同弹出框,若有则关闭它再弹出新的 resetMessage.js: import {Message} from 'element-ui'; let messageInstance = null; const resetMessage = (options) => { if(messageInstance) { messageInstance.

weixin_41997724的博客 2240

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue 项目中提示框弹出多次,改为只弹一次

项目中使用element-ui时,message弹框功能是必须使用的,有时会在点击按钮时提示无权限,或者请求报错时给出适当提示: 但是重复点击按钮或者同一个页面多个请求同时报错时,就不美观了 可以看到,element-ui是动态往页面根节点插入message元素来实现弹框效果的,都拥有el-message属性 那么我们就可以通过判断页面中message的个数来决定要不要弹出第二个提示框 这就需要重新写一下element-ui的message resetMessage.js /**重置message,防止重复

LILEILEILOVE的博客 6384

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

重写element的message解决弹框多次问题,始终弹最后一次

第一步: 创建message.js的js文件 /*重写element-ui $message 解决消息多次弹出的问题 最新的会覆盖之前的/ import { Message } from “element-ui”; let messageInstance = null; const overrideMessage = (options) => { if (messageInstance) { messageInstance.close(); } messageInstance = Message(o

wuxiaoqing_818的博客 749

element-ui弹出多个message的问题处理

重写element-ui的message 方法一:弹出之前判断是否有多个,有则不弹出,没有则弹出一个 resetMessage.js: /**重置message,防止重复点击重复弹出message弹框 */ import { Message } from 'element-ui'; const showMessage = Symbol('showMessage') class DoneMessage { [showMessage](type, options, single) {

骑着代码去流浪 1985

element 消息提示框 message 问题

使用 element-ui 调用 this.$message 出现重复弹框问题

ooooooooooos的博客 596

element-ui $message仅加载一次,添加抖动动画、重置展示时间(重新整理)

element-ui,$message单例

weixin_47284124的博客 795

elementUi重复点击按钮发送请求,提示框重复出现

重写message

weixin_45070265的博客 790

element-ui重置message,实现并发请求报错的时候,多次弹出消息提示的问题

element-ui重置message,实现并发请求报错的时候,多次弹出消息提示的问题

NY1007的博客 226

生成式UI:用WebMCP契约与GenUI SDK实现意图驱动的前端开发

生成式UI是一种将业务意图(如‘带搜索分页的订单列表’)自动转化为可运行前端代码的技术范式,其核心在于语义解析、跨框架中间表示(IR)和契约化抽象。区别于低代码的可视化组装,它通过WebMCP(Model-Controller-Presenter)协议解耦UI逻辑与框架实现,提升可测试性与跨端一致性。GenUI SDK作为执行引擎,支持自然语言、结构化Schema和代码注释三种输入方式,输出标准化IR,并经适配器落地为Vue/React等目标代码。该技术显著降低重复胶水代码,适用于中台建设、多端协同及遗留系

weixin_30905133的博客 344
上一篇: 监听localStorage中的值更新
下一篇: 通过lodash判断对象类型数组元素之间的包含关系及获取差异值
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值