项目中最常用的UI框架就是element-ui,经常在点击操作按钮时候多次点击上一个弹窗未消失,下一个又出现,类似于ant-vue里面提供了 this.$message.destroy()方法,能够销毁。
但是在饿了么里面是不存在的,只能对此重写处理,代码如下
// message.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
使用:直接在 main.vue中引入message.js后,Vue.prototype.$message = message;组件中调用完全与之前相同