vue 2.x 全局注册message组件

151 阅读1分钟

概要

因为需要全局使用到element-ui+vue 的dialog组件 业务上需求要有弹出外链 于是就有了 el-dialog 嵌套iframe的操作,找了一下解决方案就开始操作了, 经验交流,有更好的方式可以私信我 谢谢大佬

代码

import Vue from 'vue';
//这个文件写 html template 模板el-dialog + iframe
import outLink from './index.vue'
let outLinkConstructor = Vue.extend(outLink);// 获取组件的构造函数

const outlink = (options) => {
    // 组件的手动挂载:创建组件实例,挂载,添加在body上
    let instance = new outLinkConstructor({
      data: {
        ...options,
        visible: true
      },
    });
    instance.$mount();
    document.body.appendChild(instance.$el)
    instance.visible = true
  }
  
  export { outlink }
import { outlink } from '@/src/xxx/xxxxxx/iframecontainer'

// 添加实例属性
Object.assign(Vue.prototype, {
  outlink //全局使用
})

使用方法this.outlink({url: 'xxxx', title: 'xxxx', bgcolor: 'xxxx'})