需要相互转换的场景并不多,今天在其他封装的框架传参时遇到了,特此记录分享一下。
1.得到虚拟dom(VNode)
import { h } from 'vue'
import comp from './comp.vue'
// 使用h函数转换
const compVnode = h(comp)
2.将虚拟Dom(VNode)转化为dom(组件)
<template>
<comp />
</template>
<script setup lang="ts">
import { defineComponent, isVNode } from 'vue'
interface PropsInterface {
vnode: any
}
const props = defineProps<PropsInterface>()
const comp = defineComponent({
render() {
return props.vnode
}
})
// 判断是否为VNode
console.log(isVNode(props.vnode))
</script>