当前位置:   article > 正文

el-table实现懒加载(el-table-infinite-scroll)

el-table实现懒加载(el-table-infinite-scroll)

2023.8.15今天我学习了用el-table对大量的数据进行懒加载。

效果如下:

 

1.首先安装:
 

npm install --save el-table-infinite-scroll@2

2.全局引入:

  1. import ElTableInfiniteScroll from "el-table-infinite-scroll";
  2. // 懒加载
  3. Vue.directive("el-table-infinite-scroll", ElTableInfiniteScroll);

3.页面使用:

  1. <template>
  2. <div>
  3. <el-table v-el-table-infinite-scroll="load">
  4. //相关内容
  5. </el-table>
  6. //提示框内容
  7. <el-alert v-if="isflag" title="正在努力加载中..." type="success" center :closable="false" show-icon/>
  8. <el-alert v-if="isMore" title="没有更多啦!" type="warning" center show-icon/>
  9. </div>
  10. </template>
  11. <script>
  12. export default{
  13. data(){
  14. return{
  15. start: 10,//截取数据的开始位置
  16. end: 20,//截取数据的结束位置
  17. isflag: false,//显示加载中提示的动画
  18. isMore: false,//显示没有过多提示的动画
  19. },
  20. methods:{
  21. load() {
  22. this.isMore = false;//默认为false
  23. this.isflag = true;
  24. if (this.isflag) {
  25. //判断现有表格数据长度是否和全部数据长度一样,不一样的话就进行截取
  26. if (this.slice_bed_data_list.length != this.all_bed_data_list.length) {
  27. this.slice_bed_data_list =
  28. this.slice_bed_data_list.concat(this.all_bed_data_list.slice(this.start,
  29. this.end));
  30. //每次截取十条数据,截取位置每次都增加10,也可以采用每次截取前十条数据然后删除总数组的前十条数据,这样每次截取的数据就是最新的十条数据。
  31. this.start = this.start + 10
  32. this.end = this.end + 10
  33. } else {
  34. setTimeout(() => {
  35. this.isMore = true;
  36. setTimeout(() => {
  37. this.isMore = false;
  38. }, 2000);
  39. }, 2000);//显示没有过多提示的效果,2秒后消失
  40. }
  41. setTimeout(() => {
  42. this.isflag = false
  43. this.isMore = false
  44. }, 1000)//所有提示都消失
  45. }
  46. },
  47. }
  48. }
  49. }
  50. </script>

如果大家有不懂的地方可以参考:

1.vue—在el-table上实现懒加载效果_列表懒加载插件_迷路小灰灰的博客-CSDN博客

2.el-table-infinite-scroll - npm (npmjs.com) 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/496017
推荐阅读
相关标签
  

闽ICP备14008679号