Vue.js 将子节点添加到现有vnode
关于渲染函数的一个问题-我正在编写一个需要构建树状结构的渲染函数 也就是说,我的数据结构如下所示:Vue.js 将子节点添加到现有vnode,vue.js,vuejs2,Vue.js,Vuejs2,关于渲染函数的一个问题-我正在编写一个需要构建树状结构的渲染函数 也就是说,我的数据结构如下所示: { "items": [ { "id": "1", "children": [ { "id": "11", "parentId": "1", "children": [ { "id": "111", "par
{
"items": [
{
"id": "1",
"children": [
{
"id": "11",
"parentId": "1",
"children": [
{
"id": "111",
"parentId": "11",
}
]
},
{
"id": "12",
"parentId": "1",
}
]
},
{
"id": "2",
}
]
}
const myMenu = createElement('menu', {}, [])
const myMenuItem1 = createElement('menu-item', {}, []);
我需要在屏幕上显示的是一个结构,它可以有效地显示这个(示例中的id),但是带有组件
1
|--11
|--111
|--12
2
createElement()接受子节点数组作为第三个参数。我正在努力解决的是如何在创建父组件后将子组件添加到节点中
例如,如果我创建如下顶级菜单组件:
{
"items": [
{
"id": "1",
"children": [
{
"id": "11",
"parentId": "1",
"children": [
{
"id": "111",
"parentId": "11",
}
]
},
{
"id": "12",
"parentId": "1",
}
]
},
{
"id": "2",
}
]
}
const myMenu = createElement('menu', {}, [])
const myMenuItem1 = createElement('menu-item', {}, []);
然后创建一个项目进入该菜单,如下所示:
{
"items": [
{
"id": "1",
"children": [
{
"id": "11",
"parentId": "1",
"children": [
{
"id": "111",
"parentId": "11",
}
]
},
{
"id": "12",
"parentId": "1",
}
]
},
{
"id": "2",
}
]
}
const myMenu = createElement('menu', {}, [])
const myMenuItem1 = createElement('menu-item', {}, []);
然后如何将myMenuItem1添加到myMenu
我认为这可能是myMenu.children,但尽管在创建myMenu元素时传递了一个空数组作为子元素,但children属性未定义。我遗漏了什么?我想你一定是在实验中犯了错误。我已经对此进行了测试,
vnode.children
在这种情况下是一个空数组。这意味着您可以根据需要将其他VNode推入:
render(createElement) {
const VNode1 = createElement('div', {}, [])
const VNode2 = createElement('h1', {}, 'This is headline')
VNode1.children.push(VNode2)
return VNode1
}
这太奇怪了,我会再试一次,谢谢你看。当然,让我知道进展如何;-)