Javascript 在VueJS中更新递归树视图的初始数组

Javascript 在VueJS中更新递归树视图的初始数组,javascript,vue.js,treeview,Javascript,Vue.js,Treeview,我正在为自己的树视图编写教程,其中包含vuejs中的递归组件。 因此,输入数组如下所示: let tree = { label: 'root', nodes: [ { label: 'item1', nodes: [ { label: 'item1.1' }, { label: 'item1.2', nodes: [ {

我正在为自己的树视图编写教程,其中包含vuejs中的递归组件。 因此,输入数组如下所示:

let tree = {
  label: 'root',
  nodes: [
    {
      label: 'item1',
      nodes: [
        {
          label: 'item1.1'
        },
        {
          label: 'item1.2',
          nodes: [
            {
              label: 'item1.2.1'
            }
          ]
        }
      ]
    }, 
    {
      label: 'item2'  
    }
  ]
}

...
...

以下是如何使用修改器进行递归更新:

Vue.config.devtools=false;
Vue.config.productionTip=false;
Vue.component('树节点'{
模板:`
`,
道具:[“标签”,“节点”]
});
让树={
标签:'根',
节点:[{
标签:“项目1”,
节点:[
{标签:'项目1.1'},
{标签:“第1.2项”,
节点:[
{标签:'项目1.2.1'}
]
}
]
},
{标签:'项目2'}
]
};
新Vue({
el:“#应用程序”,
数据:()=>({
树
})
})
#应用程序{
显示器:flex;
}


你似乎期望陌生人在你没有投入的东西上投入精力。除非你考虑在一个“问题”的努力中描述你的目标。我说的是研究和编码工作。对不起,我不希望有一个完整的解决方案,我可以复制/粘贴。TreeView不是一个未知的结构,我发现了一些其他的实现。事实上,我已经用自定义特性实现了我自己的treeview,但我被困在这里了。当然,我自己也在寻找解决办法,但没有找到。我只是希望类似“您必须再次遍历树,以构建更新的结构”或“我有同样的问题,请检查此链接”。您必须从当前级别递归地发出一个事件,一直冒泡到顶部,更新已修改的树分支。就性能而言,在达到最高级别之前,应该避免对树进行变异,这样就不会对每个级别进行变异。每个变化事件在顶层只有一个突变。您不太可能找到有用的资源,因为递归树结构通常与实现非常耦合。例如,我从未能够重用递归结构,我总是需要为我正在处理的特定案例创建一个新的递归结构。另外,请注意,我最初的评论并不是为了开玩笑。这是一个建议:如果您需要有用的建议,您必须向我们展示您的尝试以及您的具体技术挑战。在它当前的形式中,它看起来太像一个客户端请求了,很明显,这是离题的。对不起,我现在明白你的意思了。关于代码,由于它是递归渲染的,我需要将子数组传递到
树菜单
,以便构建树结构。谢谢:)我会检查这个修改器。我的问题是,我没有节点的标识符,所以
tree
如何知道哪个节点的标签被更改了。非常感谢您的详细解释!)我会查一查。
<template>
  <div>
    ...
    <tree-menu 
      v-for="node in nodes" 
      :nodes="node.nodes" 
      :label="node.label" />
    ...
  </div>
<template

<script>
  export default { 
    props: [ 'label', 'nodes' ],
    name: 'tree-menu'
  }
</script>