Vue ElementUI分页表单

功能介绍

使用前端进行table数据分页,一般用于数据较少的情况,避免多次访问接口

环境配置

需要引用axios,elementui

效果图

image.png

使用方法

需要一个vue脚手架项目,在有需要用到该组件的页面,引用该组件,并配置好相关页面的路由

组件代码

fenyetable.vue

<template>
 <div class="app">  
   <!-- 将获取到的数据进行计算 --> 
   <el-table :data="tableData.slice((currentPage-1)*PageSize,currentPage*PageSize)" >
     <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>
   <div class="tabListPage">
      <el-pagination @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
             :current-page="currentPage"
             :page-sizes="pageSizes"
             :page-size="PageSize" layout="total, sizes, prev, pager, next, jumper"
             :total="totalCount">
       </el-pagination>
    </div>
</div>
</template>
<script>
import axios from 'axios'
export default {
    name: 'fenyetable',
  data(){
    return {
      // 总数据
      tableData:[],
      // 默认显示第几页
      currentPage:1,
      // 总条数,根据接口获取数据长度(注意:这里不能为空)
      totalCount:1,
      // 个数选择器(可修改)
      pageSizes:[1,2,3,4],
      // 默认每页显示的条数(可修改)
      PageSize:2,
    }
  },
 methods:{
    getData(){
       // 这里使用axios,使用时请提前引入
       let url = 'http://localhost:8080/mock/fenyetable.json'
       axios.get(url, {}).then(response=>{
              this.tableData=response.data.data.data
              this.totalCount = response.data.data.data.length
              })
     },
    // 分页
    // 每页显示的条数
    handleSizeChange(val) {
      // 改变每页显示的条数 
      this.PageSize=val
      // 注意:在改变每页显示的条数时,要将页码显示到第一页
      this.currentPage=1
    },
     // 显示第几页
    handleCurrentChange(val) {
      // 改变默认的页数
      this.currentPage=val
    },
  },
  created:function(){
     this.getData() 
  }
}
</script>

模拟数据

fenyetable.json

{
    "code": 200,
    "msg": "查询成功",
    "data": {
        "currentPage": 1,
        "data": [
        {
            "date": "2016-05-02",
            "name": "王小虎1",
            "address": "上海市普陀区金沙江路 1518 弄"
        },
        {
            "date": "2016-05-02",
            "name": "王小虎2",
            "address": "上海市普陀区金沙江路 1518 弄"
        },
        {
            "date": "2016-05-02",
            "name": "王小虎3",
            "address": "上海市普陀区金沙江路 1518 弄"
        },
        {
            "date": "2016-05-02",
            "name": "王小虎4",
            "address": "上海市普陀区金沙江路 1518 弄"
        },
        {
            "date": "2016-05-02",
            "name": "王小虎5",
            "address": "上海市普陀区金沙江路 1518 弄"
        },{
            "date": "2016-05-02",
            "name": "王小虎6",
            "address": "上海市普陀区金沙江路 1518 弄"
        },{
            "date": "2016-05-02",
            "name": "王小虎7",
            "address": "上海市普陀区金沙江路 1518 弄"
        },{
            "date": "2016-05-02",
            "name": "王小虎8",
            "address": "上海市普陀区金沙江路 1518 弄"
        }]
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 特点 1.基于MVVM模式(Model-View-ViewModel),中间通过viewmodel层实现了双向绑定...
    dawsonenjoy阅读 990评论 0赞 1
  • 前言 哈喽大家周一好,今天的内容比较多,主要就是包括:把前端页面的展示页给搭出来,然后调通接口API,可以添加数据...
    SAYLINING阅读 1,415评论 0赞 2
  • element-ui 文档 Vue项目接口文档地址 博客 session 和 cookie等 学什么? 1 如何使...
    cj_jax阅读 4,108评论 0赞 10
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 9,483评论 0赞 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 7,874评论 0赞 2

友情链接更多精彩内容