You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为v-treeview设置多个item-children属性适配不同层级子节点字段

v-treeview多子节点字段适配方案

结论

原生v-treeview的item-children属性仅支持传入单个字符串,无法直接设置多个值对应不同层级的子节点字段。

推荐解决方案:预处理数据统一子节点字段

你可以通过递归函数把不同层级的子节点字段统一为同一个名称,之后直接绑定该名称到item-children即可:

// 原始数据
const originalItems = [
  {
    id: 1,
    name: 'value1',
    item_nested: [
      {
        id: 2,
        name: 'value2',
      },
      {
        id: 3,
        name: 'value3',
        nested_item: [
          {
            id: 4,
            name: 'value4'
          }
        ]
      }
    ]
  }
]

// 递归归一化树结构数据
function normalizeTree(items) {
  return items.map(item => {
    // 适配不同层级的子节点字段
    const rawChildren = item.item_nested || item.nested_item || []
    return {
      ...item,
      // 统一子节点字段为children
      children: normalizeTree(rawChildren)
    }
  })
}

const normalizedItems = normalizeTree(originalItems)

之后在组件中直接使用处理后的数据即可:

<v-treeview
  :items="normalizedItems"
  item-children="children"
  item-key="id"
  item-label="name"
/>

其他可选方案

如果不想修改原始数据,也可以通过v-treeview的节点作用域插槽自定义子节点渲染逻辑,手动读取对应层级的子节点字段,但该方案实现成本高于数据预处理,更推荐优先用数据归一化的方案。

内容的提问来源于stack exchange,提问作者Michel Gisenäel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:27:02