UNPKG

yanzhen-design-vue

Version:

44 lines (43 loc) 1.01 kB
import { render, h } from "vue"; import { uniqueId } from "lodash-es"; const closeComponent = (element) => { var _a; if (element) { render(null, element); (_a = document.body) == null ? void 0 : _a.removeChild(element); } }; const openComponent = async ({ component, props = {}, element, appContext }) => { var _a, _b; if (!component) return; if (!element) { element = document.createElement("div"); element.className = uniqueId(); } try { if (typeof component === "function") { component = (_a = await component()) == null ? void 0 : _a.default; } const vnode = h(component, props); if (appContext) { vnode.appContext = appContext; } render(vnode, element); (_b = document.body) == null ? void 0 : _b.appendChild(element); vnode.close = () => { closeComponent(element); }; return vnode; } catch (error) { console.error("创建组件失败:", error); } }; export { closeComponent, openComponent };