Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页

这篇具有很好参考价值的文章主要介绍了Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页:

        当table的数据量比较大的时候,一个屏幕展示不出全部的数据,这个时候就需要分页显示。而多数情况下都是做的后端分页,就是将分页参数和查询条件一并传到后端,后端将当前页要显示的数据返回来。但是有时候会遇到后端也是去调用了其它系统的接口,这时候返回到前端的是所有的数据,此时需要前端自行去进行分页显示。今天抽空写了个demo,效果如下:

Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页,vue.js,前端,javascript,elementui,vue

有朋友要用el-table组件做前端分页的时候可以参考以下代码:

<template>

  <div class="paging">

    <div class="box_body">

      <el-table :data="tableData" border size="small" style="width: 100%">

        <el-table-column

          label="序号"

          prop="num"

          min-width="150"

        ></el-table-column>

        <el-table-column

          label="姓名"

          prop="name"

          min-width="150"

        ></el-table-column>

        <el-table-column

          label="性别"

          prop="sex"

          min-width="150"

        ></el-table-column>

        <el-table-column

          label="年龄"

          prop="age"

          min-width="150"

        ></el-table-column>

      </el-table>

      <!--===分页=====-->

      <el-pagination

        :current-page="pageinfo.page"

        :page-sizes="[10, 20, 30, 40]"

        :page-size="pageinfo.size"

        layout="total, sizes, prev, pager, next, jumper"

        :total="pageinfo.total"

        @size-change="handleSizeChange"

        @current-change="handleCurrentChange"

        style="margin-bottom: 3px"

      ></el-pagination>

    </div>

  </div>

</template>

<script>

export default {

  name: "paging",

  data() {

    return {

      // 从后端获取到的所有表格数据

      sourceTableData: [],

      // 页面要显示的表格数据

      tableData: [],

      // 分页信息

      pageinfo: {

        page: 1,

        size: 10,

        total: 0,

      },

    };

  },

  created() {

    // 页面初始化时生成100条数据,模拟从后端获取所有数据

    let arr = [];

    for (let i = 0; i < 100; i++) {

      let obj = {};

      obj.num = i + 1;

      obj.name = "name" + (i + 1);

      obj.sex = Math.round(Math.random()) == 0 ? "男" : "女";

      obj.age = 20 + Math.round(Math.random() * 30);

      arr.push(obj);

    }

    this.sourceTableData = arr;

    // 初始化算出第一页数据

    this.tableData = this.currentChangePage(

      this.pageinfo.size,

      this.pageinfo.page

    );

    this.pageinfo.total = this.sourceTableData.length;

  },

  methods: {

    /** 切换每页显示条数 */

    handleSizeChange(val) {

      this.pageinfo.page = 1;

      this.pageinfo.size = val;

      this.tableData = this.currentChangePage(val, this.pageinfo.page);

    },

    /** 切换分页 */

    handleCurrentChange(val) {

      this.pageinfo.page = val;

      this.tableData = this.currentChangePage(this.pageinfo.size, val);

    },

    // 分页方法(用于表格数据后端不分页,放到前端做分页)

    currentChangePage(size, current) {

      const tablePush = [];

      let array = JSON.parse(JSON.stringify(this.sourceTableData));

      array.forEach((item, index) => {

        if (size * (current - 1) <= index && index <= size * current - 1) {

          tablePush.push(item);

        }

      });

      return tablePush;

    },

  },

};

</script>

<style>

.paging {

  width: 100%;

  height: 100%;

}

.box_body {

  width: 1200px;

  margin: 50px auto;

}

</style>文章来源地址https://www.toymoban.com/news/detail-808180.html

到了这里,关于Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui中的el-table实现分页多选功能

    selection-change事件:当选择项发生变化时会触发该事件(当分页切换时,选中的数据都会自动清空) 链接: https://blog.csdn.net/qq_36157085/article/details/122922678

    2024年02月17日
    浏览(28)
  • Vue2 +Element-ui实现前端页面

    以一个简单的前端页面为例。主要是利用vue和element-ui实现。 里面涉及的主要包括:新建vue项目、一行多个输入框、页面实现等。   ①首先安装nodejs,这部分在此就不讲啦。 ②然后安装vue-cli: 查看是否安装成功: 安装成功之后就输出vue的版本 ③在cmd窗口新建一个vue2脚手架

    2024年02月16日
    浏览(33)
  • Vue结合element-ui实现导航菜单展开收缩小功能

    1. 先上个效果图    这里我把控制菜单收缩的放在中间了,是可以随便调整的。  2. 问题思路想法  ① 首先是布局,这就是个很经典的后台管理系统的容器页面,这里分为上下结构,上面一般放些系统logo、 登录的用户信息,还有一些小功能等等。然后下面又分为左右结构,

    2024年02月16日
    浏览(33)
  • 前端vue3+element plus 分页table排序功能实现

    我有如下所示的一个table,数据data是一个computed计算属性,一般情况下筛选使用element的sortable属性就可以了,可查看Element - The world\\\'s most popular Vue UI framework 但我的 table 是一个分页的 table ,当我使用 sortable 时发现,它只是对当前页的数据进行排序,但这并不是我需要的,我的

    2024年02月14日
    浏览(36)
  • vue结合element-ui实现(按钮控制)动态增加减少input框功能。

    一、template部分 二、script部分 三、效果展示 这是初始页面  这是点击添加 这是删除的     四、详细说明 v-for=\\\"(item,index)in array\\\" :key = \\\"index\\\" 这个是重点!!! ! 通俗点将,就是用一个div(盒子)将input输入框包括起来,然后在div中使用 v-for=\\\"(item,index)in array\\\" :key = \\\"ind

    2024年02月12日
    浏览(42)
  • vue element-ui分页插件 始终保持在页面底部样式

    最近在写前端页面的时候,有一个小需求就是保证分页插件一直保持在底部,表单数据增多的时候出现竖向的滚动条。 直接上代码 样式 效果展示

    2024年02月11日
    浏览(33)
  • 【Vue Element-ui el-table组件 实现跨分页全选 可全选中当前页 也可选中全量数据】

    前端模拟数据示例,无需后台接口,复制粘贴即可看到效果。 element-ui table里的全选功能只会全选当前页的所有数据 当table有分页功能的时候实现跨页全选 ①为table添加select方法(当用户手动勾选数据行的 Checkbox 时触发的事件) 两个参数 selection,row 选中的数据 最后一个选中

    2024年02月02日
    浏览(34)
  • Vue3+element-ui + TS封装全局分页组件

    本文介绍了如何使用Vue3、element-ui和TypeScript封装一个全局分页组件。 在开始之前,你需要安装以下环境: Vue3 element-ui TypeScript 这个分页组件提供以下功能: 支持自定义每页显示条数 支持自定义跳转到指定页码 支持显示总页数和总条数 支持自定义样式 分页组件结构 分页组

    2024年02月12日
    浏览(47)
  • Vue2 + element ui el-select 远程搜索分页懒加载功能实现

    新建指令 :         1、 在 src 目录下 新建文件夹 directive / loadmore         2、在 loadmore 文价夹下新建 elSelectLoadmore.js 和 index.js 文件:            elSelectLoadmore.js index.js 3、在main 文件中注册该指令 4、 基于 el-select 封装 懒加载 远程搜索框 remoteSelect.vue 组件提示

    2024年01月21日
    浏览(35)
  • 前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应

    我的环境是element-ui vue版的,其他的也可以,主要是css和js的内容 首先在data中定义一个对象 其实就是css的样式,不过放在了js 里面而已 这里css设置了两个属性 一个是transform 这个属性对div标签的缩放作用,当浏览器窗口或者屏幕大小改变时,就调整这个属性的值,来等比缩放

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包