mount.ts 451 B

12345678910111213
  1. import { createVNode, render, Teleport, createBlock, openBlock } from 'vue'
  2. import type { Component } from 'vue'
  3. export const mount = (to: HTMLDivElement, Component: Component, props?: Record<string, any>) => {
  4. const appEl = document.createElement('div')
  5. const vnode = createVNode(Component, props)
  6. openBlock()
  7. const portBlock =createBlock(Teleport as any, { to }, [ vnode ])
  8. render(portBlock, appEl)
  9. return () => render(null, appEl)
  10. }