当进入页面时,会出现 message 消息提示或 messageBox 弹窗自动触发的问题,如图所示:
原因:
我使用的 element ui 是按需导入的。当我导入了 Message 和 MessageBox 之后,我就 vue.use了它们。
但是这两个特殊的组件是不用 vue.use 的,如果vue.use了会导致进入页面时,会出现message 消息提示或 messageBox 弹窗自动触发的问题。
原本的element.js:
import Vue from 'vue'
import {
Button,
Form,
FormItem,
Message,
MessageBox
} from 'element-ui'
Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
Vue.use(Message)
Vue.use(MessageBox)
解决办法:
我们可以将原 element.js 中的 Vue.use(Message) 和 Vue.use(MessageBox) 去掉,将 Mesage 和 MessageBox 挂载到 vue 原型对象上。
改后的 element.js:
import Vue from 'vue'
import {
Button,
Form,
FormItem,
Message,
MessageBox
} from 'element-ui'
Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
// 将Mesage挂载到vue原型对象上
Vue.prototype.$message = Message
// 将MessageBox挂载到vue原型对象上
Vue.prototype.$confirm = MessageBox.confirm
问题解决。