Vue使用EleentUI tree table 动态加载以及刷新问题

在使用el-table做树形查询的时候需要动态加载,但是el-table的懒加载机制只会调用一次load方法,解决方式如下:

1. 如果是在点击查询重新加载列表数据之后在点击展开子级没有动态触发load方法的时候可以做如下操作:

在这里插入图片描述在这里插入图片描述
如上图当中绑定的key,在每次点击查询加载列表的时候要保证每次都是唯一值,这样子每次点击展开子级列表的时候会触发load方法,查询后台数据

2. 使用$refs方式进行同台触发load方法,如下图所示:

第一步 ,指定ref=table,设置懒加载及指定load函数,在添加expand-change事件绑定对应的方法
在这里插入图片描述
第二步,定义缓存行数据的属性字段
在这里插入图片描述
第三步, 在load的时候需要把当前行相关的数据缓存起来,方便后面的步骤使用
在这里插入图片描述
第四步,在菜单打开和收缩的时候会触发这个函数,如果是第一次打开不需要去加载数据,如果是收缩的话则把子级缓存数据清空还原,如果是第二次及以后展开的话则触发resolve去加载数据
在这里插入图片描述
第五步, 在查询列表的时候,不会把已经展开的子级列表收起来,所以需要在查询的时候把展开的菜单收缩起来
在这里插入图片描述
操作完以上步骤即可在每次展开的时候都会去触发load函数进行异步加载数据

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 Vue Element UI 中的 Tree 组件,也可以使用加载的方式来查询所有数据。具体实现方法如下: 1. 在 Tree 组件中设置 `lazy` 属性为 `true`,表示开启懒加载模式。 2. 在 Tree 组件中设置 `load` 属性,用于指定懒加载时需要调用的方法。 3. 在 `load` 方法中使用异步请求获取数据,并将数据通过回调函数返回给 Tree 组件。 下面是一个示例代码,演示如何使用加载的方式查询 Vue Element UI 中的 Tree 组件中的所有数据: ```vue <template> <el-tree :data="treeData" :lazy="true" :load="lazyLoad"></el-tree> </template> <script> export default { data() { return { treeData: [], // 懒加载时需要调用的方法 lazyLoad(node, resolve) { // 模拟异步请求数据 setTimeout(() => { // 获取数据 const data = getData(node.id); // 将数据通过回调函数返回给 Tree 组件 resolve(data); }, 1000); } } } } </script> ``` 在这个示例中,我们在 Tree 组件中设置了 `lazy` 属性为 `true`,表示开启懒加载模式。然后在 `load` 方法中,模拟异步请求数据,并将数据通过回调函数 `resolve` 返回给 Tree 组件。最后,我们在 Tree 组件中使用 `treeData` 属性来显示查询到的数据。 需要注意的是,在实际使用中,需要根据实际情况修改 `getData` 方法来获取对应的数据。同时,在 `lazyLoad` 方法中,也可以根据需要进行数据处理,以便在 Tree 组件中正确显示数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值