Vue2 el-table 数据量大的情况下使用虚拟滚动

el-table+el-pagination组件一起用时,从10条/页切换到100条/页会有几秒钟的loading卡顿,解决方法为使用虚拟滚动插件el-table-virtual-scroll

文档:https://gitcode.com/xiaocheng555/el-table-virtual-scroll

效果预览:el-table-virtual-scroll

注意事项:

  1. VirtualScroll组件中必须设置key-prop,否则会出现错行

  2. 使用 <el-table-virtual-scroll> 做表格虚拟滚动,是不支持 ElementUI 表格的原有的索引、多选、扩展行等功能,需要使用 <virtual-column> 来兼容。<virtual-column> 组件内封装了 <el-table-column>,支持传入 <el-table-column> 组件的props属性。

1、安装el-table-virtual-scroll

npm install el-table-virtual-scroll

2、js

import VirtualScroll, { VirtualColumn } from 'el-table-virtual-scroll'

export default {
  components: {
    VirtualScroll: VirtualScroll,
    VirtualColumn: VirtualColumn
  },
  data () {
    virtualData: [], // 真正的全部的数据
    tableData: [], // 虚拟滚动组件中当前显示的数据
    tableSelRows: []
  },
  methods: {
    tableSelectionChange (val) {
      this.tableSelRows = val
    }
  }
}

3、template

<virtual-scroll
        :data="virtualData"
        :item-size="62"
        :key-prop="id"
        @change="(virtualList) => tableData = virtualList"
        @selection-change="tableSelectionChange"
        :virtualized="true"
      >
        <el-table
          highlight-row
          ref="tableData"
          border
          class="normalTableList"
          :data="tableData"
        >
          <virtual-column
            width="50"
            fixed
            type="selection"
          />
          <el-table-column
            prop="address"
            label="地址">
          </el-table-column>
       </table>
 </virtual-scroll>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值