hiller-ui
Version:
A personal Vue.js 3.0 UI Toolkit.
16 lines (13 loc) • 584 B
JavaScript
import { h, render } from "vue";
const MOUNT_COMPONENT_REF = "hl_component";
const COMPONENT_CONTAINER_SYMBOL = Symbol("hl_component_container");
export function createCompoent(Component, props, children) {
const vnode = h(Component, { ...props, ref: MOUNT_COMPONENT_REF }, children);
const container = document.createElement("div");
vnode[COMPONENT_CONTAINER_SYMBOL] = container;
render(vnode, container);
return vnode.component;
}
export function unmountComponent(ComponInstance) {
render(undefined, ComponInstance.vnode[COMPONENT_CONTAINER_SYMBOL]);
}