Vue 之 在当前页面的实现分页效果

目录

在这里插入图片描述

场景

假设,我们现在有这么一个需求:
上述图片的空白内容是活动的,由下面的两个按钮控制上一页、下一页;我们应该可以怎么去实现?

实现

思路:
其实这个问题,我们仿照其他的UI框架应该也可以获取大致思路,例如:element-ui;

可以将空白内容作为一个table的某一页数据,然后点击底部的分页组件的上一页或者下一页,来做到数据的切页效果。
这里使用vue element admin 中的一个综合table来看下效果图
在这里插入图片描述

这下有没有感觉顿时思路就来了
定义变量,当前页码currentPage、每页数据数量pageSize,总数据源列表dataList
点击按钮切换页码,监听页码的变化获取到当前页的数据,从而渲染到页面上。

注意点,这里建议使用计算属性computed,而不是监听属性watch,为什么?这是因为计算属性的一个特性:计算属性相比监听而言,计算属性具有缓存特性,直白的说,计算属性的依赖(也就是计算属性中所用到的变量)如果不变,那么计算属性不会被再次调用,从而进一步的提高性能。

代码如下:

<template>
  <div>
    <!-- 数据列表 -->
    <ul>
      <li v-for="item in currentPageData" :key="item.id">{{ item.content }}</li>
    </ul>
    
    <!-- 分页控件 -->
    <button @click="prevPage" :disabled="currentPage === 1">上一页</button>
    <button @click="nextPage" :disabled="currentPage === totalPages">下一页</button>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      dataList: [], // 假设这是从服务器获取的数据列表
    };
  },
  computed: {
    totalPages() {
      return Math.ceil(this.dataList.length / this.pageSize);
    },
    currentPageData() {
      let start = (this.currentPage - 1) * this.pageSize;
      let end = start + this.pageSize;
      return this.dataList.slice(start, end);
    },
  },
  methods: {
    nextPage() {
      if (this.currentPage < this.totalPages) {
        this.currentPage++;
      }
    },
    prevPage() {
      if (this.currentPage > 1) {
        this.currentPage--;
      }
    },
  },
};
</script>


完结。

相关推荐

  1. springboot+Vue实现

    2024-05-02 03:38:03       12 阅读
  2. Vue2 实现前端

    2024-05-02 03:38:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 03:38:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 03:38:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 03:38:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 03:38:03       18 阅读

热门阅读

  1. Spring Cloud原理详解

    2024-05-02 03:38:03       13 阅读
  2. 论左值与右值和常量与变量之间的关系

    2024-05-02 03:38:03       10 阅读
  3. 06016湿敏传感器题目

    2024-05-02 03:38:03       10 阅读
  4. 6、Python:常用的数据类型

    2024-05-02 03:38:03       9 阅读
  5. 在 PHP中使用 Redis 缓存的方法有哪些

    2024-05-02 03:38:03       9 阅读
  6. 计算机炸了电子信息也是劝退专业

    2024-05-02 03:38:03       10 阅读
  7. 【QEMU系统分析之实例篇(八)】

    2024-05-02 03:38:03       13 阅读
  8. Json 反序列化错误

    2024-05-02 03:38:03       7 阅读
  9. window驱动开发-内核线程

    2024-05-02 03:38:03       9 阅读
  10. springmvc常用注解

    2024-05-02 03:38:03       10 阅读