• Vue中ElementUI分页组件Pagination的使用方法


    Vue中ElementUI分页组件Pagination的使用方法
    https://www.jb51.net/article/213700.html

    Vue中ElementUI分页组件Pagination的使用,供大家参考,具体内容如下

    一、概要

    ElementUI 提供了 el-pagination 组件,只要配置相应得参数和事件,即可实现分页。

    二、实现

    1、基本用法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div class="pagination">
        <el-pagination
          background
          layout="total, sizes, prev, pager, next, jumper"
          :current-page="tablePage.pageNum"
          :page-size="tablePage.pageSize"
          :page-sizes="pageSizes"
          :total="tablePage.total"
          @size-change="handleSizeChange"
          @current-change="handlePageChange"
        />
    </div>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    data() {
        return {
          tablePage: {
            pageNum: 1, // 第几页
            pageSize: 10, // 每页多少条
            total: 0 // 总记录数
          },
          pageSizes: [10, 20, 30]
        }
      },
      methods: {
        handlePageChange(currentPage) {
          this.tablePage.pageNum = currentPage
          // 在此刷新数据
        },
        handleSizeChange(pageSize) {
          this.tablePage.pageSize = pageSize
          // 在此刷新数据
        }
      }

    2、后端分页的实现

    实现思路:向后台发送请求,传入pageNum、pageSize两参数,直接得到相应的分页数据。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 获取数据
    getData() {
          let param = {
            pageNum: this.tablePage.pageNum,
            pageSize: this.tablePage.pageSize
          }
          // 请求后台接口函数
          getDataApi(param, { loading: true }).then(res => {
            // 后台返回数据
            this.list = res.data.list
            this.tablePage.total = res.data.total
          })
        },

    3、前端分页的实现

    实现思路:向后台发送请求,获取全部数据,前端通过pageNum、pageSize对数据进行处理,最终得到相应的分页数据。以下是处理数据得两种方法:

    1、利用 Array.slice 截取想要的数组片段( 此方法要考虑 总页数为“1” 和 尾页 的情况)
    2、利用 Array.filter 过滤出想要的数组片段(此方法无需考虑 总页数为“1” 和 尾页 的情况,只要满足条件即可

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    /**
         * 分页数据处理
         * @param data [Array] 需要分页的数据
         * @param num [Number] 当前第几页
         * @param size [Number] 每页显示多少条
    */
        getList(data, num, size) {
          let list, total, start, end, isFirst, isLast
          total = data.length
          isFirst = total < size
          isLast = Math.ceil(total / size) === num
          start = (num - 1) * size
          end = isFirst || isLast ? start + (total % size) : start + size
          list = data.slice(start, end)
          list.forEach((item, index) => {
            item.seq = index + start
          })
          return list
        }
        /**
         * 分页数据处理
         * @param data [Array] 需要分页的数据
         * @param num [Number] 当前第几页
         * @param size [Number] 每页显示多少条
         */
        getList(data, num, size) {
          let list, start, end
          start = (num - 1) * size
          end = start + size
          list = data.filter((item, index) => {
            return index >= start && index < end
          })
          list.forEach((item, index) => {
            item.seq = index + start
          })
          return list
    }

    总结:无论是前端分页和还是后端分页,最终都需要拿到两个参数:pageNum(当前页)、pageSize(每页多少条)。

  • 相关阅读:
    设计并实现一个漂亮的结婚小站
    Android新特性--ConstraintLayout完全解析
    Android之MainActivity类
    Android app启动activity并调用onCreate()方法时都默默地干了什么?
    Android Studio开发-高效插件强烈推荐
    Android SDK Manager详解
    Android Studio中如何设置颜色拾色器工具
    独立的android开发者开发app如何盈利?
    Android Studio开发常用快捷键
    最强 Android Studio 使用小技巧和快捷键总结
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16350007.html
Copyright © 2020-2023  润新知