首页 > 解决方案 > VueJS在带有createElement的渲染函数中使用VNode?

问题描述

我正在尝试在我的渲染函数中渲染一个 Vnode。以这样一种方式,我仍然可以给那个元素孩子。我知道你可以有一个 Vnodes 数组作为 createElement(tag, data, vnode[]) 的第三个参数,但是因为我想给这个特定的 Vnode 子节点,所以我似乎有点卡住了,

我试过做类似的事情:

const vnodeObj = {tag: vnode.tag, data: vnode.data}

//跳到内部渲染函数 createElement(vnodeObj.tag, vnodeObj.data, [])。

哪个可以很好地创建标签,但我发现从 Vnode.data 返回的数据对象与 createElement 期望的数据对象不同,例如:

如果我要使用创建元素向元素添加类“test”和引用“test2”,则数据对象将如下所示:

{
 attrs: { class: "test", ref: "test2"},
}

而 Vnode.data 将返回如下内容:

{
 "ref":"test2",
 "staticClass":"test"
}

让我相信必须有更好的方法来渲染单个 Vnode 及其数据并继续使用 createElement 为其提供子节点。

标签: vue.jsvuejs2vue-componentvuex

解决方案


推荐阅读