...
大前端

vue 做一个插件plugin 插件的创建(install)及使用方法

接上篇(https://www.vsay.net/web/279.html ),要做一个全局调用的dialog(web),这种方法只能在web下使用,小程序我还没测哈。

// plugins/dialog.js
import Vue from 'vue';
import MyDialog from '@/components/MyDialog.vue';

const DialogConstructor = Vue.extend(MyDialog);

let instance;

const initInstance = () => {
  instance = new DialogConstructor({
    el: document.createElement('div'),
    data() {
      return {
        visible: false,
        message: '',
      };
    },
  });
  document.body.appendChild(instance.$el);
};

const showDialog = (options = {}) => {
  if (!instance) {
    initInstance();
  }
  instance.message = options.message || '';
  instance.visible = true;

  return new Promise((resolve, reject) => {
    instance.$on('confirm', () => {
      resolve();
    });
    instance.$on('close', () => {
      reject();
    });
  });
};

export default {
  install(Vue) {
    Vue.prototype.$dialog = showDialog;
  },
};
最新版 ADB 工具下载与使用指南 uniapp全局弹窗APP做全局弹窗(dialog)插件的思路
biu biu biu
闲来无事做个了微信多开工具,分享一下~ Chrome启动参数大全(命令行参数) 把废旧的电视机顶盒华为悦盒ec6108v9刷成Ubuntu系统做家用NAS php date 参数详解 一个小时学会Git