解决引用Element UI 导致弹出多个message消息提示的问题

摘要:
在项目中使用元素ui时,必须使用消息弹出函数。有时它会在单击按钮时提示没有权限,或在请求错误时给出适当的提示,但当重复单击按钮或在同一页面上的多个请求同时报告错误时,这并不美观。如您所见,元素ui动态地将消息元素插入页面的根节点中以实现弹出效果,并且两者都具有el-message属性。然后,我们可以通过判断页面中的消息数量来确定是否弹出第二个提示框,这需要重写元素ui消息。

写在前面

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

解决引用Element UI 导致弹出多个message消息提示的问题第1张

 解决方案

1、重写 resetMessage.js,具体如下:

  在src/utils(文件所在路径可以根据自身需要创建)下新建一个文件 resetMessage.js,文件内容如下:

import { Message } from 'element-ui';
let messageInstance = null;
const resetMessage = (options) => {
  if(messageInstance) {
    messageInstance.close()
  }
  messageInstance = Message(options)
};
['error','success','info','warning'].forEach(type => {
  resetMessage[type] = options => {
    if(typeof options === 'string') {
      options = {
        message:options
      }
    }
    options.type = type
    return resetMessage(options)
  }
})
export const message = resetMessage

2、main.js中引入重写的 resetMessage.js,具体操作,参看下图:

解决引用Element UI 导致弹出多个message消息提示的问题第2张

 需要编写的代码如下:

import { message } from '@/utils/resetMessage'  // 引入resetMessage

Vue.prototype.$message = message // 重写message提示框 注意:此行代码一定要放在Vue.use(ElementUI)后面,否则不生效

3、在Vue页面中使用

第一种方式:

this.$message.error(response.message);

第二种方式:

this.$message({type:success,message:'提示内容'});

免责声明:文章转载自《解决引用Element UI 导致弹出多个message消息提示的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇uniapp不同型号手机适配docker 下载安装镜像下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ps图层组快捷键 一次打开或关闭所有的顶级图层组

这些快捷键是:·按Ctrl键并单击顶层图层组的箭头,可同时打开/关闭所有顶层图层组。...

DD-wrt+Wiwiz搭建私人免费(收费)WiFi认证页面+详细的操作教程

因此,请选择正确的DD-WRT版本将无线路由器连接到Internet。执行以下命令:#cd;wgethttp://dl.wiwiz.com/hsbuilder-util-latest-DD-WRT.tar.gz#cd/jffs ; tar zxf/tmp/root/hsbuilder-util-lalatest-DD-WRT.tar。gz#/jffs/usr...

mac格式化重装系统

4.选择“重新安装MacOS”5.按照以下步骤中的提示进行操作。安装需要半个多小时。在此期间无法断开网络,否则需要重新安装...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...

DB2锁表或超时解决方案

命令如下:db2"forceapplication"4、使用命令listapplication查看是否已经断开了哪些进行了死锁的进程。...

如何从github下载项目的源代码,包含git客户端,直接下载,vs下载

很多小伙伴可能刚刚联系了github。如果他们使用github下载项目,他们将在这里编写一个统一的声明。从各种方式下载源代码,以加深对git的理解。英文描述:Git是一个免费开源的分布式版本控制系统,旨在以快速和高效的方式处理从小型到大型项目的所有事务。例如:在github上下载项目:https://github.com/dathlin/HslCommuni...