Vue3手写分页在分页的基础上用到Pagination 分页组件

news2025/1/24 22:45:36

     近期有个项目要用到分页组件,但是内容不是表格,所以自己就研究了一下在Pagination 分页组件的基础上手写了分页

效果图:

目录

一、先声明几个变量用来定义第几页,每页多少条,总页数。

二、然后封装一个函数方便以后调用

三、 然后就使用到Pagination 分页来控制上一页和下一页

四、然后在 current-change事件去调用哪个函数就可以了


原理跟 Pagination 分页组件使用差不多把对应的参数传入到相应的地方就可以。

不同之处切换对应的页数需要自己去手写一个函数然后再去调用它。

一、先声明几个变量用来定义第几页,每页多少条,总页数。

二、然后封装一个函数方便以后调用

字母 a 代表第一页

字母 b 代表每页多少条数据

三、 然后就使用到Pagination 分页来控制上一页和下一页

四、然后在 current-change事件去调用哪个函数就可以了

current-changecurrent-page 改变时触发

 在这个地方要注意一点就是每次调用前要给数据清空一下,不然会前一条数据还在后一条数在它下面。

  // 分页
  const value = ref('');
  const handleCurrentChange = (val) => {
    tableArr.value = [];
    pageNum.value = val;
    amount(pageNum.value, selecctNum.value);
  };

下面是整个代码:

<template>  
  <div class="content">
    <div class="box" v-for="(item, index) in tableArr" :key="item.id">
      <div class="under2" v-if="showCss[index]"></div>
      <div class="content_box">
        <p class="xxgy">学员感言</p>
        <p class="say">明月几时有</p>
        <div class="for_btn">
          <img src="../../assets/student_img/a1.png" alt="" />
        </div>
        <div class="students">
          <div class="students_box_mame">
            <div class="name"> 姓名: </div>
            <div class="names">{{ item.name }}</div>
          </div>
          <div class="students_box_mame">
            <div class="name"> 薪资: </div>
            <div class="names">{{ item.pay }}</div>
          </div>
          <div class="entry">
            <div class="name">入职:</div>
            <div class="names">{{ item.company }}</div>
          </div>
        </div>
      </div>
    </div>
  </div>
 <div class="pages">
    <el-pagination
      :current-page="pageNum"
      small
      background
      layout="prev, pager, next,jumper"
      :total="totalNum"
      class="mt-4"
      :page-size="selecctNum"
      @current-change="handleCurrentChange"
    />
  </div>
</template>

<script setup>
  import { ref, reactive, onMounted } from 'vue';
  // 分页
  const value = ref('');
  const handleCurrentChange = (val) => {
    tableArr.value = [];
    pageNum.value = val;
    amount(pageNum.value, selecctNum.value);
  };
let list_content = [
    {
      id: 1,
      name: '测试1',
      pay: '13k',
      company: '腾讯有限公司',
    },
    {
      id: 2,
      name: '测试2',
      pay: '15k',
      company: '支付宝有限公司',
    },
    {
      id: 3,
      name: '测试3',
      pay: '14k',
      company: '上海科技有限公司',
    },
    {
      id: 4,
      name: '测试4',
      pay: '13k',
      company: '江苏科技有限公司',
    },
    {
      id: 5,
      name: '测试5',
      pay: '13k',
      company: '天津有限公司',
    },
    {
      id: 6,
      name: '测试6',
      pay: '12k',
      company: '北京有限公司',
    },
    {
      id: 7,
      name: '测试7',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 8,
      name: '测试8',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 9,
      name: '测试9',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 10,
      name: '测试10',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 11,
      name: '测试11',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 12,
      name: '测试12',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 13,
      name: '测试13',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 14,
      name: '测试14',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 15,
      name: '测试15',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 16,
      name: '测试16',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 17,
      name: '测试17',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 18,
      name: '测试18',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 19,
      name: '测试19',
      pay: '16k',
      company: '深圳有限公司',
    },
    {
      id: 20,
      name: '测试20',
      pay: '16k',
      company: '深圳有限公司',
    },
  ];

  const tableArr = ref([]);
  // 第一页
  const pageNum = ref(1);
  // 每页多少条
  const selecctNum = ref(10);
  // 总页数
  const totalNum = list_content.length;

  // 分页处理事件
  const amount = (a, b) => {
    tableArr.value = [];
    let c = (a - 1) * b;
    if (list_content.length < a * b) {
      for (let i = c; i < list_content.length; i++) {
        tableArr.value.push(list_content[i]);
      }
    } else {
      if (a * b > list_content.length) {
        for (let i = c; i < list_content.length; i++) {
          tableArr.value.push(list_content[i]);
        }
      } else {
        for (let i = c; i < a * b; i++) {
          tableArr.value.push(list_content[i]);
        }
      }
    }
  };
  amount(pageNum.value, selecctNum.value);
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习 Python 之 Pygame 开发魂斗罗(十)

学习 Python 之 Pygame 开发魂斗罗&#xff08;十&#xff09;继续编写魂斗罗1. 解决敌人不开火的问题2. 创建爆炸效果类3. 为敌人跳入河中增加爆炸效果4. 玩家击中敌人继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗&#xff08;九&#xff09;中&#xff0c;…

pycharm 使用方式

提示&#xff1a; pycharm 是专业版&#xff1b; 社区版目前暂不支持调试 Jupyter; 如果你是学生&#xff0c; 在读期间&#xff0c;每一年可以申请免费一年使用专业版&#xff0c; 详情到Jetbrain 去申请&#xff1b; 在申请过程中&#xff0c;需要注意&#xff0c; 不要使用…

简单给WordPress怎么添加自定义字段面板

今天一淘模板(56admin.com)WordPress怎么添加自定义字段面板&#xff1f;下面本篇文章给大家介绍一下WordPress添加自定义字段面板的方法&#xff0c;希望对大家有所帮助&#xff01; 我们在WordPress中编写文章的时候&#xff0c;经常会用到一些自定义字段&#xff0c;如网页描…

Vue3笔记01 创建项目,Composition API,新组件,其他

Vue3 创建Vue3项目 vue-cli //查看vue/cli版本&#xff0c;确保在4.5.0以上 vue --version //安装或升级vue/cli npm install -g vue/cli //创建项目 vue create new_project //启动 cd new_project npm run serve 也可以通过vue ui进入图形化界面进行创建 vite 新一代前端…

论文笔记:Positive-incentive Noise

2022 TNNLS 中心思想是&#xff1a;噪声并不一定是有害的 1 CV问题中的噪声 以图像分类为例 对图像加入适量的噪声后再训练&#xff0c;识别准确率反而上升了 再以目标检测为例&#xff1a; 从遥感影像中做飞机检测&#xff0c;一般都是把飞机紧紧框住&#xff0c;然后做…

第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解

文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描述 1、4、2 题解关…

js typeof instanceof 以及数据类型

js 的数据类型 JavaScript的数据类型分为两种&#xff1a;原始类型&#xff08;即基本数据类型&#xff09;和对象类型&#xff08;即引用数据类型&#xff09;&#xff1a;基本类型&#xff1a;String、Number、Boolean、Null、Undefined、Symbol(es6)引用类型&#xff1a;Ob…

【冲刺蓝桥杯的最后30天】day5

大家好&#x1f603;&#xff0c;我是想要慢慢变得优秀的向阳&#x1f31e;同学&#x1f468;‍&#x1f4bb;&#xff0c;断更了整整一年&#xff0c;又开始恢复CSDN更新&#xff0c;从今天开始更新备战蓝桥30天系列&#xff0c;一共30天&#xff0c;如果对你有帮助或者正在备…

工作日志day04

再次安装虚拟机时常见的不确定点 软件选择 安装位置 点击完成 设置用户名的时候可能与数字&#xff0c;以及强度有关 注销以管理员身份登录填写root用户名和自己设的密码 网络设置之后可以ping通 sudo yum -y install tree python -V查看版本信息 之后是配置python3.6 http…

【C++】内联函数auto范围for循环nullptr

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;C的学习之路 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录前言一、内联函数1.1 内联函数概念1.2…

华为OD机试题,用 Java 解【数字加减游戏】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

计及需求响应的改进灰狼优化算法求解风、光、柴、储容量优化配置(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…

76 Python写入csv文件时出现空行_newline参数解决

76 Python写入csv文件时出现空行_newline参数解决 文章目录76 Python写入csv文件时出现空行_newline参数解决1. 准备工作2. with open 语句没有newline参数3. with open 语句有newline参数4. 总结1. 准备工作 在电脑D盘新建一个【76】文件夹。 用VScode编辑器打开【76】文件夹…

第1章 多线程基础

第1章 多线程基础 1.1.2 线程与进程的关系 进程可以看成是线程的容器&#xff0c;而线程又可以看成是进程中的执行路径。 1.2 多线程启动 线程有两种启动方式&#xff1a;实现Runnable接口&#xff1b;继承Thread类并重写run()方法。 执行进程中的任务时才会产生线程&a…

用Python写一个zidong发送直播弹幕脚本,让你在直播间霸屏

前言 现在直播这个东西可以说是哪哪都有&#xff0c;有些的直播还有看弹幕来进行抽奖活动&#xff0c;这不我表弟昨天晚上就碰上一个了 说是主播随机抽取一个弹幕抽奖&#xff0c;我表弟辛辛苦苦手动发送了一晚上的弹幕&#xff0c;结果啥也没中&#xff0c;怪可怜的 今天闲…

65 - 进程互斥锁的优化实现

---- 整理自狄泰软件唐佐林老师课程 文章目录1. 问题一1.1 当前实现的深入分析1.2 解决方案设计1.3 解决方案实现步骤1.4 编程实验&#xff1a;EnterCritical()重设计2. 问题二2.1 互斥锁的优化设计2.2 互斥锁的优化实现方案2.3 编程实验&#xff1a;互斥锁的优化实现3. 小结1.…

【C语言】每日刷题 —— 牛客

前言 大家好&#xff0c;今天带来一篇新的专栏 c_牛客&#xff0c;不出意外的话每天更新十道题&#xff0c;难度也是从易到难&#xff0c;自己复习的同时也希望能帮助到大家&#xff0c;题目答案会根据我所学到的知识提供最优解。 &#x1f3e1;个人主页&#xff1a;悲伤的猪大…

小白做什么兼职项目赚钱?宝妈拍短视频赚钱的方法

很多宝妈在家带孩子之余想做兼职赚点小钱&#xff0c;依靠互联网无疑是比较方便的途径&#xff0c;在刷单、微商等网上兼职成为过去式以后&#xff0c;很多宝妈选择了短视频创业。 宝妈怎么拍短视频&#xff1f; 宝妈因为要照顾宝宝还要兼顾家务&#xff0c;空闲的时间比较琐碎…

Rust Web入门(七):WebAssembly

本教程笔记来自 杨旭老师的 rust web 全栈教程&#xff0c;链接如下&#xff1a; https://www.bilibili.com/video/BV1RP4y1G7KF?p1&vd_source8595fbbf160cc11a0cc07cadacf22951 学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程 https://www.bili…

5款电商团队必须会用的任务管理工具

随着企业数字化转型&#xff0c;高效率的团队协作和远程协同办公成为越来越多团队的强烈需求&#xff0c;今天说说电商团队&#xff0c;电商运营很大一个特点是多场景、跨部门、高频协作。并且要通过多平台和形式跟新兴媒体进行品宣争夺市场份额。 这种情形对跨部门的团队协作…