基于Element中的el-tree组件使用懒加载时更新节点数据

1.使用el-tree 组件的 lazy和 load属性;

2. 

<el-tree
          class="filter-tree"
          :load="loadNode"
          lazy
          :props="defaultProps"
          :filter-node-method="filterNode"
          :render-content="renderContent"
          ref="treeRef"
          :expand-on-click-node="false"
          @node-contextmenu="rightClick"
          @node-click="leftClick"
          node-key="id"
        ></el-tree>

2. 




/**
 * 单独刷新节点
 * id: 当前节点的父级唯一标识节点(指的是:el-tree组件上绑定的node-key="id")
 * 需要提前保存,
 *  注意调用时的ref的命名:treeRef
 */
refreshTreeNode(id) {
  let node = this.$refs.treeRef.getNode(id)
  if (node) {
    node.loaded = false
    node.expand() // 主动调用展开节点方法,重新查询该节点下的所有子节点
  }
},

3. 该方法在添加、修改、删除时进行调用

add() {
// 发送请求
getData().then(res => {

// 成功之后
this.refreshTreeNode(id)
})
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值