import { createApp } from "vue"

// 导入写好的Loading.vue文件
import Loading from "./loading.vue"

export default {
  loading: null,
  // 每当这个插件被添加到应用程序中时，如果它是一个对象，就会调用 install 方法。如果它是一个 function，则函数本身将被调用。在这两种情况下——它都会收到两个参数：由 Vue 的 createApp 生成的 app 对象和用户传入的选项。
  install(app) {
    if (this.loading) {
      // 防止多次载入
      app.config.globalProperties.$loading = this.loading
      return
    }
	// 创建Loading实例，用于挂载
    let instance = createApp(Loading)
    // 创建div元素装载Loading对象
    let div = document.createElement("div")
    div.setAttribute("id","maskbox")
    let body = document.body
	// 导入body中
    body.appendChild(div);

    this.loading = instance.mount(div)
	// 挂载vue身上
    app.config.globalProperties.$loading = this.loading;
  }
}
