Vue+Element-UI总结_el-pagination实现Vue前端分页功能

本文介绍了在Vue项目中使用Element UI的el-pagination组件进行前端分页的方法。通过实例代码展示了如何配置分页参数,以及如何将分页结果应用于el-table展示数据。在实际应用中,需要注意el-table的data属性需要结合分页计算来绑定数据。
摘要由CSDN通过智能技术生成

一、前言

  当table的数据量比较大的时候。一个屏幕展示不出全部的数据,这个时候就需要分页查询来做了,因为我做的这个项目数据量比较小,所以就使用<el-pagination>做了Vue前端分页。
二、开始上代码

2.1了解 el-pagination 怎么使用
官网关于分页的介绍:https://element.eleme.cn/2.12/#/zh-CN/component/pagination
下面的就是官网的一个全部功能的例子,我做了一些整理:

<template>
    <div>
        <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="currentPage"
              :page-sizes="[100, 200, 300, 400]"
              :page-size="100"
              layout="total, sizes, prev, pager, next, jumper"
              :total="400">
        </el-pagination>
    </div>
</template>
 
<script>
  export default {
    methods: {
      handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
      },
      handleCurrentChange(val) {
        console.log(`当前页: ${val}`);
      }
    },
    data() {
      return {
        currentPage: 4
      };
    }
  }
</script>

2.2分页的实际应用
代码部分如下:

<template>       
    <div>
                <el-table :data="DictData.slice((dictCurrentPage-1)*dictPageSize,dictCurrentPage*dictPageSize)">
                    <el-table-column prop="dictId" label="id" width="50"></el-table-column>
                    <el-table-column prop="dictName" label="字典名称" width="120"></el-table-column>
                    <el-table-column prop="dictKey" label="字典key" width="200"></el-table-column>
                    <el-table-column prop="dictTypeKey" label="字典类型key" width="150"></el-table-column>
                </el-table>
                <el-pagination class="fy"
                			@size-change="bzjSizeChange"
                            @current-change="bzjCurrentChange"
                               layout="sizes, prev, pager, next, total"
                               :current-page.sync="dictCurrentPage"
                               :total="dictTotal"
                               background
                               :page-sizes="[5, 10, 15, 20]"
                               :page-size.sync="dictPageSize"
                >
                </el-pagination>
    </div>
</template>
<script>
    import { getRequest } from '../utils/api'
    export default {
        name: "DictManage",
        data() {
            return {
                dictTotal:0,
                dictCurrentPage:1,
                dictPageSize:5,
                DictData: [],
            }
        },
        methods: {
            initDict(){
                getRequest("/api/dict/getAll")
                    .then(rsp => {
                    //console.log(rsp.data.rtData.rows);
                    this.DictData = rsp.data.rtData.rows;
                    this.dictTotal = this.DictTypeData.length;
                })
            },
            bzjSizeChange(val) {
	            this.dictPageSize=val
	        },
	        bzjCurrentChange(val) {
	            this.dictCurrentPage=val
	        },
	        },
        mounted() {
            this.initDict();
        }
    }
</script>
 
<style scoped>
    .fla {
        float: left;
        margin-right: 15px !important;
        margin-left: 5px;
    }
</style>

注:在el-table标签中的data属性绑定的值要经过分页计算0.0
重点就是这句!!!
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值