UNPKG

magiccube-vue3

Version:

vue3-js版组件库

35 lines (34 loc) 1.09 kB
import loadingComponent from './Main.vue' import { createApp } from 'vue' function append(el) { setTimeout(() => { el.instance.$el.classList.add('mc-loading-fade-in') }, 5) el.insertBefore(el.instance.$el, el.childNodes[0]) } function remove(el) { const loadingEl = el.querySelector('.mc-loading-block') loadingEl && loadingEl.remove() // setTimeout(() => { // el.removeChild(el.instance.$el) // }, 205) } export default { name: 'loading', directive: { // 绑定元素的父组件被挂载时调用 mounted(el, binding) { const position = el.style.position el.style.position = position || 'relative' const instance = createApp(loadingComponent).mount(document.createElement('div')) el.instance = instance if (binding.value) { append(el) } }, // 在包含组件的 VNode 及其子组件的 VNode 更新之后调用 updated(el, binding) { binding.value ? append(el) : remove(el) }, } }