首页 > 其他分享 >Debug-034-elementUI中Message消息多次触发只提示一次

Debug-034-elementUI中Message消息多次触发只提示一次

时间:2024-12-05 15:57:29浏览次数:5  
标签:elementUI 提示 element 过期 plus Debug Message grouping

前言

        只要是用过elementUI的各位,肯定知道其中的“Message 消息提示”组件。一般执行完特定操作或者前端根据接口返回信息报出一个全局提示的作用。

element-plus

效果一

效果二 

        问题:页面执行操作,同时调用两个接口,此时登录过期,多次触发响应拦截,提示了两次过期。其实感觉是不需要处理的,不过测试不希望会出现这个数字,我们就来看一下怎么处理。

(1)关键属性:grouping

首先这个属性是支持显示这个效果(效果二)的原因,不使用这个属性的话,正常是分开提示的(效果一)。

          ElMessage({
            message: "登录过期,请重新登录",
            grouping: true,
            type: 'error',
          })

有两种办法:

方法一:CSS的办法

前提:方法1是必须在element-plus中使用,我查看了elementUI的文档和源码我发现elementUI中其实还没有grouping属性,所以通过隐藏数字是没用的

element-plus比起elementUI来讲已经做了一部分优化,使用grouping之后不再弹出多个提示。但是会展示“效果二”的样子。将提示的个数暴露出来。

这里可以利用我在之前写过的文章中提到的方法,把这个提示截取到,暂停之后,登录过期提示就不会消失了。然后找到他的样式

调试代码的参考文档大家可以看一下:Debug-032-前端F12-查看伪元素的一个小技巧-CSDN博客

 这招F8暂停真的确实很好捕捉到这种会“消失”的样式。

然后在全局的位置添加CSS把数字隐藏即可:

//登录过期时,页面请求过期接口大于等于2时: 隐藏 Message-消息提示 (分组消息合并)grouping 为 true时的右上角的数字
.el-message .el-message__badge{
  display: none;
}

方法二:全局响应拦截器

        在这里通过一个变量的布尔值去判断,只要满足“提示过一次”就停止提示即可。代码时间原因就省略了。这个是element-pluselementUI都可以使用的办法网上很多方法都是基于此。如果你项目中使用Vue3+element-plus,那么可以使用方法一万能的CSS,算是占巧了。

标签:elementUI,提示,element,过期,plus,Debug,Message,grouping
From: https://blog.csdn.net/LM0916/article/details/144116642

相关文章

  • 如何使用js去调用vscode-js-debugger的方法去调试网页?
    ......
  • 【Vulkan入门】04-开启Debug输出
    目录先叨叨git信息关键代码和主要APIVulkanEnv::SetDebugUtilMessenger()VulkanEnv::CreateVkInstance()题外话先叨叨到上篇为止我们已经作了很多事情了。建立了Instance、挑选了物理设备、建立的Device和Queue。之前做的都是相对简单和线性的工作,只要认真对照说明......
  • 苹果im虚拟机系统,苹果imessage推信软件,苹果iMessage自动群发协议 – 持续更新中...
    一、电脑版虚拟机苹果系统(MacOS)上实现imessage群发:/*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁”工具欺骗macOS系统,让苹果系统认为你的电脑其实是一台苹......
  • 【通过错误消息DEBUG定位到增强】
    运行程序进入调试模式,自动跳转到调试页面,创建监控点按F8定位至消息报错的位置定位成功,点击程序事件按钮修改增强处代码......
  • debug,gorm,transaction,
    记录一次可笑的debug我遇到了一个有意思的orm框架问题,大概的流程是,将数据先插入cardlist表中,然后如果这个card有特殊支持,则在一个support表中新增内容,我使用的是gorm,然后开启了事务我发现插入的案例有些成功有些失败,很快总结出规律,如果有特殊支持的就插入失败,也没有报错,啥也......
  • flutter项目运行卡在Running Gradle task 'assembleDebug'?
    flutter项目运行卡在RunningGradletask'assembleDebug'?也修改了项目build.gradle和flutter.gradle文件,替换为阿里地址,还是卡在那,没用呀?flutter/packages/flutter_tools/gradle/resolve_dependencies.gradle改为url"http://download.flutter.io"flutter/packages/flutte......
  • ElementUI 下载文件前后端代码
    前端代码store中的js文件import{excelExportTemplate}from'@/api/xxxxx'asyncexcelExportTemplate({commit},fieldConfig){varres=awaitnewPromise((resolve,reject)=>{excelExportTemplate(fieldConfig).then(response=>{......
  • Could not extract response:no suitable HttpMessageConverter found for response t
    请求三方接口时,对方返回的响应数据是text/html类型怎么处理原来的调用方式默认只处理text/json类型的数据publicstaticJSONObjectpost(Stringurl,HttpHeadersheaders,Map<String,Object>body){RestTemplaterestTemplate=newRestTemplate(factory);......
  • 说说你对postMessage的理解,它有什么运用场景呢?
    postMessage是一个强大的方法,允许在不同浏览器窗口(包括标签页、iframe、弹出窗口)或同一窗口的不同JavaScript执行上下文(例如,主线程和WebWorker)之间安全地进行跨域通信。它绕过了同源策略的限制,实现了灵活的数据交换。核心理解:postMessage的工作机制类似于发送消息。源窗......
  • 攻防世界-Decrypt-the-Message
    一、题目收到一首英文诗歌和一段密文,要求很简单,就是解密这个密文二、解题1、背景知识PoemCode参考文章:https://blog.csdn.net/xiao__1bai/article/details/1202504522、解密了解加密原理即可,解密过程很复杂,可以直接用现成的脚本脚本地址:https://github.com/abpolym......