vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法

简介: vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法

问题场景:我们在axios中统一处理500、401、404状态码并统一抛出el-message提示,那么就会出现重复提示的问题非常的不友好。如图:
image.png

解决办法:
新建一个resetMessage.js文件,写入以下代码

// resetMessage.js // 重置message,防止重复点击重复弹出message弹框 import {  Message } from 'element-ui' let messageDom = null const resetMessage = (options) => {  if (messageDom) messageDom.close() // 判断弹窗是否已存在,若存在则关闭 messageDom = Message(options) } // message类型 const typeArr = ['success', 'error', 'warning', 'info'] typeArr.forEach(type => {  resetMessage[type] = options => {  if (typeof options === 'string') options = {  message: options } options.type = type return resetMessage(options) } }) export const myMessage = resetMessage 

方法一:全局引入及使用
在main.js文件中引入并挂在到全局
注意:挂载自定义$message必须放在Vue.use(ElementUI)后面,才能覆盖element-ui默认的message,不然没有效果

// main.js ... // 其他代码 / 引入重写的resetMessage.js文件 import {  myMessage } from './plugins/resetMessage' Vue.use(ElementUI) 

// 注意:挂载自定义$message必须放在Vue.use(ElementUI)后面,才能覆盖element-ui默认的message,不然没有效果

Vue.prototype.$message = myMessage ...// 其他代码 // page.vue 页面调用 methods: {  test() {  this.$message({ message: '测试', type: 'success'}) setInterval(()=> {  this.$message.info('测试12')},1000) } } 

方法二:局部引入及使用

// axios.js import {  myMessage } from '../plugins/resetMessage' // ...其他代码 myMessage.warning('xxxxxxxx') // ...其他代码 
相关文章
|
9月前
|
JavaScript 数据安全/隐私保护
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常用工具函数,并且持续不断维护更新中。另外,组件库全量使用 TypeScript,支持自动按需引入和 Tree Shaking 等,能够显著提升开发效率,降低开发成本。
553 5
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
这篇文章介绍了如何使用Ant Design Vue UI框架创建一个简单的后台管理模板,包括创建Vue项目、安装和使用ant-design-vue、以及编写后台管理通用页面的代码和样式。
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
972 0
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
JavaScript
vue + element UI 表单中内嵌自定义组件的表单校验触发方案
vue + element UI 表单中内嵌自定义组件的表单校验触发方案
451 5
|
前端开发 JavaScript
零基础学 Vue + Element UI 第01步 —— 搭建开发环境、创建项目、修改默认模板、启动项目、访问项目
零基础学 Vue + Element UI 第01步 —— 搭建开发环境、创建项目、修改默认模板、启动项目、访问项目
267 1
|
JavaScript
vue + element UI【实战】音乐播放器/语音条(内含音频的加载、控制,事件监听,信息获取,手机网页阴影的去除等技巧)
vue + element UI【实战】音乐播放器/语音条(内含音频的加载、控制,事件监听,信息获取,手机网页阴影的去除等技巧)
621 1
|
前端开发 JavaScript
vue + element-UI 图片压缩canvas【详解】(含完整demo)
vue + element-UI 图片压缩canvas【详解】(含完整demo)
844 1
|
JavaScript
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
805 1
|
JavaScript 前端开发
Vue实现Element UI框架的自定义输入框或下拉框在输入时对列表选项进行过滤,以及右键列表选项弹出菜单进行删除
本文介绍了如何在Vue框架结合Element UI库实现自定义输入框或下拉框,在输入时对列表选项进行过滤,并支持右键点击列表选项弹出菜单进行删除的功能。
752 0

热门文章

最新文章

下一篇