当前位置:   article > 正文

基于 el-table 实现滚动加载(el-table-infinite-scroll)_el-table 滚动加载

el-table 滚动加载

温馨提示:使用此插件时,要注意版本选择
我一开始没注意直接装了最新版本,我的vue2项目一下就报错了,我又重新装了老一点的版本才恢复正常

一、安装(点击查看插件文档

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

二、注册

1、全局注册(main.js)
import Vue from 'vue'
import elTableInfiniteScroll from 'el-table-infinite-scroll'
Vue.use(elTableInfiniteScroll)
  • 1
  • 2
  • 3
2、局部注册
<script>
import elTableInfiniteScroll from 'el-table-infinite-scroll'
export default {
  directives: {
    'el-table-infinite-scroll': elTableInfiniteScroll
  }
}
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

三、使用

  • v-el-table-infinite-scroll 传入加载的函数
  • infinite-scroll-distance 可自定义底部距离多少触发加载
  • infinite-scroll-disabled 控制何时禁用
  <template>
	<el-table
	  :data="data"
	  height="200px"
	  v-el-table-infinite-scroll="getList"
	  :infinite-scroll-distance="10"
	  :infinite-scroll-disabled="disabled"
	>
	  <el-table-column type="index" />
	  <el-table-column prop="date" label="date" />
	  <el-table-column prop="name" label="name" />
	  <el-table-column prop="age" label="age" />
	</el-table>
  </template>

<script>
const dataTemplate = new Array(10).fill({
  date: "2009-01-01",
  name: "Tom",
  age: "30",
});

export default {
  data() {
    return {
      data: [],
      page: 0,
      total: 5,
      disabled: false
    };
  },
  methods: {
    getList() {
      if (this.disabled) return;

      this.page++;
      if (this.page <= this.total) {
        this.data = this.data.concat(dataTemplate);
      }

      if (this.page === this.total) {
        this.disabled = true;
      }
    },
  },
};
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

使用非常简单,文档也很清晰,直接照搬过去就OK

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读