首页 > 其他分享 >前端小技巧之 --- 前端实现分页

前端小技巧之 --- 前端实现分页

时间:2023-02-17 17:45:18浏览次数:38  
标签:分页 pageSize 前端 list resultList --- currentPage age name

假设情景:

后端返回总的数据为 tableData,没有分页;

使用element-ui的组件,在前端实现分页

<template>
    <div>
        <el-table :data="resultList" border>
            <el-table-column prop="name" label="姓名"></el-table-column>
            <el-table-column prop="age" label="年龄"></el-table-column>
        </el-table>
        <!-- 分页 -->
        <el-pagination background layout="total, sizes, prev, pager, next" :total="total" :page-sizes="[2, 4]"
            :page-size="2" :current-page.sync="currentPage" @size-change="handleSizeChange" @current-change="handleCurrentChange">
        </el-pagination>
    </div>
</template>
<script>
export default {
    data() {
        return {
            total: 0,//总的数据条数
            currentPage: 1,//当前页面
            pageSize: 2,//每页有几条
            resultList: [],//当前展示列表
            tableData: [{
                name: "张一",
                age: 20
            }, {
                name: "张二",
                age: 21
            }, {
                name: "张三",
                age: 22
            }, {
                name: "张四",
                age: 23
            }, {
                name: "张五",
                age: 24
            }, {
                name: "张六",
                age: 25
            }]
        }
    },
    created() {
        this.total = this.tableData.length
        this.getData(this.currentPage, this.pageSize)
    },
    methods: {
        //改变每页显示条数
        handleSizeChange(v) {
            this.currentPage = 1
            this.pageSize = v
            this.getData(this.currentPage, this.pageSize)
        },
        //点击跳转到某一页
        handleCurrentChange(v) {
            this.currentPage = v
            this.getData(this.currentPage, this.pageSize)
        },
        // 分页
        getData(page, size) {
            let currentPage = page //当前是第几页
            let pageSize = size //当前每页展示几条
            let list = this.tableData //总的数据
            this.resultList = []

            // 1、如果总的数据小于每页展示条数
            if (list.length < pageSize) {
                this.resultList = list
                return
            }
            // 2、如果是最后一页数据
            if (currentPage * pageSize > list.length) {
                this.resultList = list.slice(parseInt(list.length / pageSize) * pageSize - 1, list.length - 1)
                return
            }

            // 3、如果是整除
            let start = (currentPage - 1) * pageSize
            let end = currentPage * pageSize
            this.resultList = list.slice(start, end)
        }
    }
}
</script>
<style></style>

 

标签:分页,pageSize,前端,list,resultList,---,currentPage,age,name
From: https://www.cnblogs.com/zhaoyingzhen/p/17131001.html

相关文章

  • C/C++学生个人消费记录管理系统[2023-02-17]
    C/C++学生个人消费记录管理系统[2023-02-17]学生个人消费记录管理系统学生个人消费记录管理系统给学生一个管理个人财务的平台,主要用于对学生的生活费用收入、支出进行添......
  • Unity TextMesh 操作-----点击显示/影藏+长按方大+旋转
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassSetActiveLogic:MonoBehaviour{//获取操作对象publicGa......
  • docker-compose 配置 es kibana
    直接上代码elasticsearch.ymlhttp:host:0.0.0.0xpack.security.enabled:falsexpack.security.enrollment.enabled:truexpack.security.http.ssl:enabled:fal......
  • 创建Socket-服务器端
    网上搜的资料,在这里简单记录一下用途:Socket可以实现软件与软件之间的通信流程:创建Socket——创建网络端口——将Socket与端口绑定——设置最大连接数——监听连线 创建......
  • Acwing -101 最高的牛(差分)
    有 NN 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的......
  • POJ - 1664 放苹果
    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。Input第一行是测试数据的数目t(0<=t<=20)。以下每行均包......
  • PAT -1006 换个格式输出整数
                                 1006 换个格式输出整数 (15 分)让我们用字母 ​​B​​​ 来表示“百”、......
  • 计蒜客 - 天上的星星 (二维前缀和)
    在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标......
  • 用于交互式Web前端开发最有用的WebGL框架
    JavaScript是创建Web最有用的编程语言之一,尤其是在WebGL库的支持下。有了WebGL,可以很方便地使用HTML5Canvas元素动态生成图形。因此,设计师和开发人员很容易创建流畅的2D......
  • Debian/ubuntu系统的开机自启动服务的设置——update-rc.d: error: XXX Default-Start
    最近把自己的树莓派搞了起来,搭了个上网的共享热点,但是遇到了开机自启动的设置问题。 我们先给出正常的ubuntu系统的开机自启动服务的设置:在/etc/init.d/路径下面创建......