vue 递归处理树形数据

filterTree (list) {
      list.forEach((item) => {
        if (!item.children || item.children.length < 1) {
          delete item.children
        } else {
          this.filterTree(item.children)
        }
      })
    },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue递归树形带复选框的实现可以通过以下步骤进行: 1. 首先,创建一个Vue组件来表示树形结构的节点。在该组件中,使用递归方式在模板中嵌套该组件自身,以实现树形结构。 ```html <template> <div> <!-- 绑定复选框的状态 --> <input type="checkbox" v-model="checked" @change="handleChange"/> {{ node.name }} <div v-if="node.children"> <!-- 递归嵌套子节点 --> <tree-node v-for="child in node.children" :key="child.id" :node="child"></tree-node> </div> </div> </template> <script> export default { props: { node: { type: Object, required: true } }, data() { return { checked: false } }, methods: { handleChange() { // 复选框状态改变时,操作节点的选中状态 this.node.checked = this.checked; } } } </script> ``` 2. 在父组件中加载树形组件,并传递树形结构的数据作为props。 ```html <template> <div> <tree-node :node="treeData"></tree-node> </div> </template> <script> import TreeNode from './TreeNode.vue'; export default { components: { TreeNode }, data() { return { treeData: { id: 1, name: 'Root', children: [ { id: 2, name: 'Child 1', children: [ { id: 3, name: 'Subchild 1' }, { id: 4, name: 'Subchild 2' } ] }, { id: 5, name: 'Child 2', children: [ { id: 6, name: 'Subchild 3' } ] } ] } }; } } </script> ``` 在以上代码中,我们使用递归的方式将树形结构中的每个节点都生成一个TreeNode组件,并将对应节点的数据作为props传递给子组件。在TreeNode组件中,使用v-model绑定复选框的选中状态,当复选框的状态改变时,也改变节点的选中状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值