ElementUI 避免出现多个message同时出现

前端封装axios的时候,通常统一用 Element 的 Message 展示服务器返回的错误或者统一报错信息。由于网络问题或者服务器配置问题,可能某个页面调用多个接口的时候,会同时间出现多条报错信息,这样对用户的体验很不好。所以需要封装一个 message ,使得页面同时间只会出现一个信息框。

// reset-message.js
import { Message } from 'element-ui'

// 避免出现多个报错信息弹窗
let messageInstance = null
const resetMessage = (options) => {
  if (messageInstance) {
    // 先把第一条信息关闭,在弹出第二条信息
    messageInstance.close()
  }
  messageInstance = Message(options)
}

// 重新定义 message.success 等 4个方法
['error', 'success', 'info', 'warning'].forEach(type => {
  resetMessage[type] = options => {
    options = {
      type: type,
      message: options
    }
    return resetMessage(options)
  }
})

export const message = resetMessage
// main.js
import Vue from 'vue'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import { message } from './utils/reset-message' // reset message

Vue.use(ElementUI)
// 必须在这行命令后,覆盖 $message 方法
Vue.prototype.$message = message
// request.js 封装axios
import { message } from '@/utils/reset-message' // reset message

service.interceptors.response.use(
	// ..... if error
  message({
    message: res.rmsg || ErrorText,
    type: 'error',
    duration: 2 * 1000
  })
)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值