首页 > 其他分享 >Vue中做table分页

Vue中做table分页

时间:2022-11-07 17:00:55浏览次数:53  
标签:Vue 分页 pageSize 长度 length query table 数据 AllData

<template>   <div class="wrap">     <!-- <el-card> -->       <el-table :data="tableData" border stripe style="width: 100%">         <el-table-column prop="id" label="编号" width="180"></el-table-column>         <el-table-column prop="date" label="日期" width="180"></el-table-column>         <el-table-column prop="name" label="姓名" width="180"></el-table-column>         <el-table-column prop="address" label="地址"></el-table-column>       </el-table>       <el-pagination         @size-change="handleSizeChange"         @current-change="handleCurrentChange"         :current-page="query.pageNum"         :page-sizes="[2, 3, 4, 5,10]"         :page-size="query.pageSize"         layout="total, sizes, prev, pager, next, jumper"         :total="query.total"       ></el-pagination>     <!-- </el-card> -->   </div> </template> <script> export default {   data() {     return {       //table 表数据       tableData: [],       //分页数据       query: {         pageNum: 1,         pageSize: 5,         total: 0       }     };   },   mounted() {     this.getData();   },   methods: {     getData() {       this.tableValue();       //table总数据       const AllData = this.tableData;       //每次执行方法,将展示的数据清空       this.tableData=[]       //第一步:当前页的第一条数据在总数据中的位置       let starLength = (this.query.pageNum - 1) * this.query.pageSize + 1;       //第二步:当前页的最后一条数据在总数据中的位置       let endlength = this.query.pageNum * this.query.pageSize;       //第三步:此判断很重要,执行时机:当分页的页数在最后一页时,进行重新筛选获取数据时       //获取本次表格最后一页第一条数据所在的位置的长度     let resstarLength=0       if(AllData.length % this.query.pageSize == 0){         resstarLength = (parseInt(AllData.length / this.query.pageSize)-1) * this.query.pageSize + 1       }else{         resstarLength = parseInt(AllData.length / this.query.pageSize) * this.query.pageSize + 1       }       //如果上一次表格的最后一页第一条数据所在的位置的长度 大于 本次表格最后一页第一条数据所在的位置的长度,则将本次表格的最后一页第一条数据所在的位置的长度 为最后长度       if(starLength>resstarLength){         starLength=resstarLength       }       //第四步:此判断很重要,当分页的页数切换至最后一页,如果最后一页获取到的数据长度不足最后一页设置的长度,则将设置的长度 以 获取到的数据长度 为最后长度       if (endlength > AllData.length) {         endlength = AllData.length;       }       //第五步:循环获取当前页数的数据,放入展示的数组中       for (let i = starLength - 1; i < endlength; i++) {         this.tableData.push(AllData[i]);       }       //数据的总条数       this.query.total = AllData.length;     },     //切换当前页显示的数据条数,执行方法     handleSizeChange(val) {       console.log(`每页 ${val} 条`);       this.query.pageSize=val       this.getData()     },     //切换页数,执行方法     handleCurrentChange(val) {       console.log(`当前页: ${val}`);       this.query.pageNum=val       this.getData()     },     //向表中添加数据     tableValue(){       for(let i = 1; i<=50;i++){         this.tableData.push({           id: i,           date: "2016-05-03",           name: "王小虎"+i,           address: "上海市普陀区金沙江路"+ i + "弄"         })       }     }   }, }; </script> <style scoped> .wrap {   width: 100%;   height: 100%; } .el-pagination {   margin-top: 15px; } </style>

标签:Vue,分页,pageSize,长度,length,query,table,数据,AllData
From: https://www.cnblogs.com/devilben/p/16866548.html

相关文章

  • vue-计算属性和监视属性的区别和使用方法
    转载于:https://blog.csdn.net/qq_38110274/article/details/121242203 作者:我是天之涯  一、总述computed和watch都是vue框架中的用于监听数据变化的属性。 二......
  • vuecli的项目结构
    src中为我们需要编写的资源assets中为公共资源如图片多媒体文件等components中为我们编写的子组件app为子组件入口mainjs为总入口文件......
  • vue中改变数组对象属性名
    data:{年:2022,数量:'8000'},//把data下的年改为年份,数量改为数据量data:{年份:2022,数据量:'8000'},思路:1.遍历Json数组;2.将数组每一......
  • 手写vue-router核心原理
    最近也在观察vue3新特性,抽空玩一玩嵌套路由的vue-router,直接上代码项目目录结构代码展示app.vue<template><divid="app"><div><router-linkto="/"......
  • MyBatis笔记04-----分页查询、resultMap的简单使用
    分页查询1、分页查询的好处MyBatis作为持久层框架,主要任务就是操作数据库,即是对数据的增、删、查、改,其中大多数业务是查询功能,这也是这四个操作中最常用操作。所以为了......
  • vue3 vite代理配置,解决跨域问题
    vite.config.ts根目录文件配置exportdefaultdefineConfig({plugins:[vue()],server:{port:3000,open:true,//自动打开base:"./",//生......
  • vue表格滚动vue-seamless-scroll
    引入  npminstallvue-seamless-scroll--save  在找到main.js引入importscrollfrom'vue-seamless-scroll'Vue.use(scroll)主要代码<template>......
  • Vue3, setup语法糖、Composition API全方位解读
    起初Vue3.0暴露变量必须return出来,template中才能使用;Vue3.2中只需要在script标签上加上setup属性,组件在编译的过程中代码运行的上下文是在setup()函数中,无......
  • Vue3知识点之数据侦测
    Vue的核心之一就是响应式系统,通过侦测数据的变化,来驱动更新视图。实现可响应对象的方式通过可响应对象,实现对数据的侦测,从而告知外界数据变化。实现可响应对象的方式:g......
  • Vue3必会技巧-自定义Hooks
    Vue3自定义Hooks定义:个人理解:一些可复用的方法像钩子一样挂着,可以随时被引入和调用以实现高内聚低耦合的目标,应该都能算是hook;为什么Vue3要用自定义Hook?:结论:就是为了......