index.js
import Vue from 'vue'import BlogMessage from './BlogMessage.vue'const MessageBox = Vue.extend(BlogMessage) // 创建的是一个组件构造器,不是实例const Message = { install: (options, type, duration) => { if (options === undefined || options === null) { options = { content: '' } } else if (typeof options === 'string' || typeof options === 'number') { options = { content: options } if (type != undefined && options != null) { options.type = type; } } let instance = new MessageBox({ data: options }).$mount() document.body.appendChild(instance.$el) // 添加dom元素 Vue.nextTick(() => { // dom元素渲染完成后执行回调 instance.visible = true }) }}Vue.prototype.$message = Message.install;['success', 'error'].forEach(type => { Vue.prototype.$message[type] = (content) => { return Vue.prototype.$message(content, type) }})export default Message
使用组件
1.全局注册
import Vue from 'vue';import Message from '@/components/common/message';Vue.use(Message);
2.调用方法
private test1() { this.$message("这是一条普通消息"); } private test2() { this.$message.success("这是一条成功消息"); // this.$message("这是一条成功消息", "success"); } private test3() { this.$message.error("这是一条失败消息"); // this.$message("这是一条失败消息", "error"); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
- vue.js开发实现全局调用的MessageBox组件实例代码