zydx-plus
Version:
Vue.js
29 lines (26 loc) • 663 B
JavaScript
import { createVNode, render } from 'vue'
import spinner from './src/spinner.vue'
// 准备div容器
const divNode = createVNode('div', { class: 'spinner-container' })
render(divNode, document.body)
// 获取 DOM 节点, 用于挂载组件或卸载组件
const container = divNode.el
let instance = null
const Modal = () => {
const destory = () => {
render(null, container)
}
let VNode
if (!instance) {
VNode = createVNode(spinner, {})
instance = VNode
}
return {
open: function (hasPrompt) {
VNode = createVNode(spinner, {hasPrompt})
render(VNode, container)
},
close: () => destory()
}
}
export default Modal