求解:vue如何遍历数组对象中的数组。
要遍历的数据:
这只展示了第一层。
list: [{
id: 1,
name: "第一层",
child: [],
},
{
id: 1,
name: "第一层",
child: [
{
id: 2,
name: "第一层第二层",
child: [],
},
],
},
{
id: 1,
name: "第一层",
child: [
{
id: 2,
name: "第一层第二层",
child: [
{
id: 3,
name: "第一层第二层第三层",
child: [],
},
],
},
],
},
],
foreach写的方法,
回答
递归组件上面都说了。各种组件库都有实现递归树组件的渲染的,通常直接用就好了。
另外一种方法是你可以把树结构压扁成列表结构,就可以v-for渲染出来的,相比递归组件要高效许多。
预览:
http://jsrun.net/ai2Kp/edit
function treeToList (tree) { const result = tree.map(i => (i.level = 0, i))
for (let i = 0; i < result.length; i++) {
if (!result[i].child) continue
result[i].child.forEach(node => node.level = result[i].level + 1)
result.splice(i + 1, 0, ...result[i].child)
}
return result
}
export default {
data () {
return {
list: 'xxx'
}
},
computed: {
treeList () {
return treeToList(this.list)
}
}
}
渲染:
<template> <div>
<div
v-for="node of treeList"
:style="{
paddingLeft: node.level * 20 + 'px'
}"
:key="node.id">
{{ node.name }}
</div>
</div>
</template>
写一个组件,递归调用,js同理
页面结构是什么样的,树形结构嘛;是的话那就封装个递归组件
以上是 求解:vue如何遍历数组对象中的数组。 的全部内容, 来源链接: utcz.com/a/43301.html