vue+elementUI写一个前端分页简单方法的小例子

<template>
  <div>
    <el-table
      :data="list.slice((this.query.pageNum - 1) * this.query.pageSize, this.query.pageNum * this.query.pageSize)">
      <el-table-column label="服务名" width="200px" prop="serviceName" show-overflow-tooltip></el-table-column>
      <el-table-column label="告警对象" prop="instanceName">
        <template slot-scope="scope">{{ scope.row.instanceName.replace(',',' , ') }}</template>
      </el-table-column>
    </el-table>
    <el-pagination :current-page.sync="query.pageNum" :page-size="query.pageSize"
                   layout="total,prev, pager, next,sizes,jumper" :total="list.length" @current-change="handleCurrentChange"
                   @size-change="changeSizeHandler" size="small"></el-pagination>
  </div>
</template>

<script>
  export default {
    props: {
      list: {
        type: Array,
        default: function () {
          return []
        }
      }
    },
    data() {
      return {
        query: {
          pageNum: 1,
          pageSize: 10
        }
      }
    },
    methods: {
      changeSizeHandler(size) {
        this.query.pageSize = size
      },
      handleCurrentChange(currentPage) {
        this.query.pageNum = currentPage
      }
    }
  }
</script>

此处的表格数据是从父页面传过来的数据,数组。

 

另如果表格要用多选,这个

<el-table
  :data="list.slice((this.query.pageNum - 1) * this.query.pageSize, this.query.pageNum * this.query.pageSize)">直接在页面里面写silce计算方法很可能会有一个bug出现,就是多选选不动

解决办法:

写一个中间变量listShow,list在script中进行分页数据计算,赋值给listShow,表格页面里写listShow,如下示例:

 changeSizeHandler(size) {
        this.query.pageSize = size
        this.listShow = this.list.slice((this.query.pageNum - 1) * this.query.pageSize, 
        this.query.pageNum * this.query.pageSize)
      },
      handleCurrentChange(currentPage) {
        this.query.pageNum = currentPage
        this.listShow = this.list.slice((this.query.pageNum - 1) * this.query.pageSize, 
        this.query.pageNum * this.query.pageSize)
      },

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值