el-tree树组件的懒加载load写法

懒加载前端代码
html部分

<template>
  <div class="box">
    <div class="leftBox">
      <el-tree lazy :load="loadNode" :props="props" node-key="id">
      </el-tree>
    </div>
  </div>
</template>

js部分

<script>
export default {
  data() {
    return {
      props: {
        label: "name",
        isLeaf: "isLeaf",
      },
    };
  },
  methods: {
    loadNode(node, resolve) {
      //如果展开第一级节点,从后台加载一级节点列表
      if (node.level == 0) {
        this.loadfirstnode(resolve);
      }
      //如果展开其他级节点,动态从后台加载下一级节点列表
      if (node.level >= 1) {
        this.loadchildnode(node, resolve);
      }
    },
    //加载第一级节点
    async loadfirstnode(resolve) {
      let params = {
        level: 0,
      };
      const res = await this.$api.getTreeData(params);
      return resolve(res.data);
    },
    //加载节点的子节点集合
    async loadchildnode(node, resolve) {
      // console.log("超过二级的", node, node.level);
      let params = {
        id: node.key,
      };
      const res = await this.$api.getTreeChildData(params);
      return resolve(res.data);
    },
  },
};
</script>

使用el-tree树组件必须指定lazy和load属性,有问题就打印node

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ElTreeElement UI 中的一个组件,它支持动态加载数据,也就是懒加载。通过设置 `lazy` 属性为 `true`,可以实现动态加载子节点的功能。 要实现动态数据懒加载,需要使用 `load` 事件来自定义加载子节点的方式。当某个节点展开时,ElTree 会触发 `load` 事件,并将该节点的数据对象作为参数传递给事件处理函数。在事件处理函数中,我们可以根据该节点的数据对象来动态加载子节点的数据。 下面是一个简单的示例代码,演示了如何使用 ElTree 实现动态数据懒加载: ```html <template> <el-tree :data="treeData" :lazy="true" :load="loadChildren" ></el-tree> </template> <script> export default { data() { return { treeData: [ { label: '节点1', loading: false, children: [] }, { label: '节点2', loading: false, children: [] } ] }; }, methods: { loadChildren(node, resolve) { // 模拟异步加载子节点数据 node.loading = true; setTimeout(() => { // 获取子节点数据 const childrenData = [ { label: '子节点1' }, { label: '子节点2' } ]; // 更新节点的子节点数据 node.children = childrenData; node.loading = false; // 解析子节点数据,告诉 ElTree 数据已加载完成 resolve(childrenData); }, 1000); } } }; </script> ``` 在上述代码中,`loadChildren` 方法用于加载子节点数据。在该方法内部,我们可以执行异步操作来获取子节点数据,然后将数据赋值给节点的 `children` 属性,并调用 `resolve` 函数来告知 ElTree 数据已加载完成。 这样,当用户展开某个节点时,会触发 `load` 事件,然后调用 `loadChildren` 方法来加载子节点数据并显示在组件中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值