elementUi——table中实现滚动到底部无限加载数据功能——功能实现

本文介绍了如何在Element UI的el-table组件中实现无限滚动加载数据,避免使用分页组件。通过引入el-table-infinite-scroll插件,结合v-infinite-scroll指令,当表格滚动到底部时自动加载更多数据。详细步骤包括安装插件、全局或局部注册、以及在模板和脚本中设置数据和加载方法。示例代码展示了具体的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看同事代码时,发现同事使用了一个表格自动滚动加载数据的功能。

这个功能适用于:表格中内容过多,需要分页展示,但是又不想使用分页组件,此时可以只展示一页的数据,然后当表格滚动到底部时,再加载下一页的数据。

参看大神链接:element-ui 的 el-table 上使用无限滚动加载(与自带的 infinite-scroll 结合):https://blog.csdn.net/baidu_27769027/article/details/101924676

elementUi官网上是有无限滚动加载功能的。

在这里插入图片描述

infiniteScroll无限滚动功能实现

在要实现滚动加载的列表上上添加v-infinite-scroll,并赋值相应的加载方法,可实现滚动到底部时自动执行加载方法。

官网实例代码如下:

<template>
  <ul class="infinite-list" v-infinite-scroll="load" style="overflow:auto">
    <li v-for="i in count" class="infinite-list-item">{{ i }}</li>
  </ul>
</template>

<script>
  export default {
    data () {
      return {
        count: 0
      }
    },
    methods: {
      load () {
        this.count += 2
      }
    }
  }
</script>

针对表格数据的无限滚动功能实现

表格数据无限滚动加载功能实现效果预览地址:https://yujinpan.github.io/el-table-infinite-scroll/

1.安装插件el-table-infinite-scroll

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

2.全局注册方法:在main.js文件中引入并全局注册

import Vue from 'vue';
import elTableInfiniteScroll from 'el-table-infinite-scroll';

Vue.use(elTableInfiniteScroll);

3.局部注册方法:

<script>
import elTableInfiniteScroll from 'el-table-infinite-scroll';
export default {
  directives: {
    'el-table-infinite-scroll': elTableInfiniteScroll
  }
}
</script>

4.页面使用无限滚动插件

<template>
  <el-table
    border
    height="400px"
    v-el-table-infinite-scroll="load"
    :data="tableData"
  >
    <el-table-column prop="date" label="日期" width="180"> </el-table-column>
    <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
    <el-table-column prop="address" label="地址"> </el-table-column>
  </el-table>
</template>

<script>
import elTableInfiniteScroll from 'el-table-infinite-scroll';

const exampleData = new Array(10).fill({
  date: '2016-05-02',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1518 弄'
});

export default {
  directives: {
    'el-table-infinite-scroll': elTableInfiniteScroll
  },
  data() {
    return {
      tableData: exampleData
    };
  },
  methods: {
    load() {
      this.$message.success('加载下一页');
      this.tableData = this.tableData.concat(exampleData);
      //此时也可以调用接口,然后做数组的拼接
    }
  }
};
</script>

<style scoped>
.el-table {
  width: 100%;
}
</style>

完成!!!

此篇文章只做记录,具体步骤完全参考大神的链接,希望遇到此需求的时候,能够帮助实现功能。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶浩成520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值