vue实战-分页器

article/2025/8/24 3:27:10

vue实战-分页器

1.分页器静态组件

因为是公共全局组件,在components里新建文件夹Pagination,并将分页器的静态组件填入
静态组件

<template><div class="pagination"><button>1</button><button>上一页</button><button>···</button><button>3</button><button>4</button><button>5</button><button>6</button><button>7</button><button>···</button><button>9</button><button>上一页</button><button style="margin-left: 30px">60</button></div>
</template><script>export default {name: "Pagination",}
</script><style lang="less" scoped>.pagination {button {margin: 0 5px;background-color: #f4f4f5;color: #606266;outline: none;border-radius: 2px;padding: 0 4px;vertical-align: top;display: inline-block;font-size: 13px;min-width: 35.5px;height: 28px;line-height: 28px;cursor: pointer;box-sizing: border-box;text-align: center;border: 0;&[disabled] {color: #c0c4cc;cursor: not-allowed;}&.active {cursor: not-allowed;background-color: #409eff;color: #fff;}}}
</style>

并在main.js中注册全局组件
在这里插入图片描述

2.在父组件Search下添加分页器的组件并传值(父给子)

pageNo:当前所在页数
pageSize:一页呈现的数据个数
total:总的数据个数
continue:一排分页器呈现几个页数
父组件
在这里插入图片描述
我们知道要让父给子传值可以使用props
子组件
在这里插入图片描述

3.分页器的核心方法

判断分页器的开始与结束的页数,基于continue、pageNo、totalPage(总页数)。

methods: {startAndEndNum(){let start = 0, end=0start = this.pageNo - Math.floor(this.continue/2)end = this.pageNo + Math.floor(this.continue/2)//当总页数小于一排需呈现的页数时//结束页数为总页数if(this.totalPage<this.continue){end = this.totalPage}//当得出的开始页数小于1时,设置它为等于1//此时还需设置保证页面有continue个页数,所以结束页面为continue的值所在页数if(start<1){start = 1end = this.continue}//当结束页数大于总页数时,设置结束页数为总页数,且开始页数保持为总页数减去continue+1。if(end > this.totalPage){start = this.totalPage -this.continue + 1end = this.totalPage}return {start,end}}},

4.设置分页器动态组件

①将传过来的数据可以动态填入组件中
②通过v-if判断按钮‘···’、‘1’、‘上一页’、‘下一页’、‘totalPage’的何时出现以及何时可以点击。
③通过v-for呈现中间continue个button页数组件
④通过点击页数按钮组件触发自定义绑定事件,更新仓库数据,返回页面变化
⑤设置当前所在页数的组件高亮
动态组件

<template><div class="pagination"><button :disabled="pageNo==1" @click="$emit('getPageNo',pageNo-1)">上一页</button><button v-if="startAndEndNum().start > 1" @click="$emit('getPageNo',1)" :class="{active:pageNo==1}">1</button><button v-if="startAndEndNum().start > 2">···</button><button v-for="(page,index) in startAndEndNum().end" :key="index" v-show="page>=startAndEndNum().start" @click="$emit('getPageNo',page)":class="{active:pageNo==page}">{{page}}</button><button v-if="startAndEndNum().end <= (totalPage - 2)">···</button><button v-if="startAndEndNum().end <= (totalPage - 1)" @click="$emit('getPageNo',totalPage)" :class="{active:pageNo==totalPage}">{{totalPage}}</button><button :disabled="pageNo==totalPage" @click="$emit('getPageNo',pageNo+1)">下一页</button><button style="margin-left: 30px">{{total}}</button></div></template>

自定义绑定事件(子给父)
子组件传值给父组件判断
在这里插入图片描述
父组件设置自定义事件回调函数
在这里插入图片描述

getPageNo(pageNo){this.searchParams.pageNo = pageNothis.getData()}

5.成果展示

在这里插入图片描述


http://chatgpt.dhexx.cn/article/MWpalR9Z.shtml

相关文章

html分页器的实现原理,js分页器详解

本文主要和大家分享js分页器详解,我们先来看一下效果,希望能帮助到大家。 依赖于:bootstrap 和 jquery html代码:通过class="pj_pager"引用,pj_total初始化总条数 js代码:/** * 分页器,依赖于bootstrap,jquery */ var pager = {init : function(r) {this.obj …

JavaScript--Swiper自定义分页器

图片是以背景显示的&#xff0c;图片上有一层遮罩&#xff0c;最上面是文字。分页器激活状态下是自定义的图片。代码比较容易进行删改&#xff0c;比如不想要遮罩或者文字可以直接删掉。 分页器的效果&#xff1a; html <!DOCTYPE html> <html lang"en"…

快速实现-简单分页器(上)

首先形形色色的分页器大家肯定都看过,这一次就快速实现一个简单的分页器,应该不会耽搁太久吧~ 先来看一下简洁布局: 瞜一眼这布局: 页码数量总共只有9个当足够显示所有页码的情况就全部显示了那么问题来了,如果不够呢? 第一种情况 第二种情况 第三种情况

完整分页器最骚的讲解(亲测)

咱也不敢问&#xff0c;咱也不敢说。先来个图瞅瞅分页器是个什么鬼叭 就目前来讲&#xff0c;这应该算是功能最全的分页器啦吧 下面我们一步一步研究一下这玩意怎么玩叭 啥也不说了&#xff0c;先去element-ui官网嫖代码吧哈哈哈 <el-paginationsize-change"handleS…

用vue封装分页器,让你的页面简单而不失优雅

前言 当我们在开发 web 应用时&#xff0c;经常需要对大量数据进行分页展示&#xff0c;这时候用到的就是分页器。element 是一款流行的前端 ui 框架&#xff0c;它提供了许多有用的工具和组件&#xff0c;其中就包括分页器组件。在本文中&#xff0c;我们将学习如何使用 vue 基…

js分页器

写分页器的时候引用别人的js总是不能达到自己想要的效果&#xff0c;在这里记录下自制分页器的历程 html部分 <!DOCTYPE html> <html> <head><title></title><meta charset"utf-8" /><script src"https://code.jquery…

flutter自定义分页器

使用flutter自定义一个分页器 最近在写flutter项目&#xff0c;项目刚好需要一个分页器&#xff0c;对数据进行分页处理&#xff0c;一开始想要在网上找有没有已经写好的插件&#xff0c;搜寻一会后还是想着自己写一个。 先看看效果图 思路 首先要准备一个盒子&#xff0c;装载…

手写一个简单的分页器

封装分页器 1. 前言 分页器基本上是任何网站必须要有的一个组件&#xff0c;为什么需要分页器&#xff0c;当后台传入了大量的数据&#xff0c;那么在前端拿到数据&#xff0c;如果直接展示很有可能或造成卡顿&#xff0c;同时消耗过多的内存&#xff0c;给用户带来的浏览效果就…

分页器(分页器基本操作、点击按钮分页、美化分页器)

分页器基本操作 用户访问一个网页或者查看某些数据&#xff0c;如果数据量过大肯定需要按页查看&#xff0c;不可能一个页面显示N条数据内容这里就用到了分页器 首先往数据库里插入数据&#xff0c;这里咱们进行脚本批量插入 # #脚本批量插入数据book_list []for i in range(2…

分页器

1.分页器 作用&#xff1a;干啥的&#xff1f;数据量大的话&#xff0c;可以分页获取&#xff0c;查看。 2.一次性插入多条数据 def add1(request):# 这样for循环会造成对数据库的大量访问&#xff0c;不建议这样添加# models.Book.objects.create(name连城诀%s%i,price10i)ll[…

分页器组件

作为前端三剑客的分页器在许多场景都能 使用&#xff0c;在实际工作中也有插件来快速实现分页器功能 但我们要了解原理&#xff0c;所以我们自己手搓个简单的分页器 先处理好静态组件 <template><div class"pagination"><button>1</button>…

分页器的介绍

一 、分页器的简介 在页面显示分页数据&#xff0c;需要用到django分页器组件 from django.core.paginator import Paginator paginator对象&#xff1a;paginator Paginator(user_list,10)#per_page:每页显示条目数量 #count &#xff1a;数据总个数#num_pages:总页数#page_…

自定义分页器

前端必须要掌握的分页器&#xff0c;轮播图&#xff0c;与日历 手写&#xff0c;掌握原理 1:分页功能实现 为什么很多项目采用分页功能&#xff1a;比如电商平台有很多数据。一次加载出来会卡住 采用分页功能 Element Ul是有相应的分页组件&#xff0c;使用起来超级简单…

【JS案例】分页器——使用原生JavaScript实现

在使用vue编写完一个分页器组件后&#xff0c;我对分页器的底层逻辑产生了兴趣&#xff0c;想在此组件的基础上再深入了解一些分页器的底层逻辑&#xff0c;了解vue与原生js的区别。我在github上看了一些大神写的分页器&#xff0c;属实牛逼&#xff0c;之后自己也根据他们的编…

zigbee-无线点灯-协调器节点

开发环境&#xff1a;IAR 8.10 Z-stack 2.5 功能&#xff1a;协调器与终端节点组网&#xff0c;实现点对点通信。终端向协调器发送“D1”&#xff0c;协调器LED灯闪烁。 流程图&#xff1a; 具体代码&#xff1a; 定义所需要的变量 端点描述符 endPointDesc_t GenericApp_e…

十分钟入门Zigbee

大部分教程通常都是已Zigbee原理开始讲解和学习&#xff0c;各种概念让初学者难以理解。本教程从一个小白的角度出发&#xff0c;入门无需任何Zigbee底层原理知识&#xff0c;只需要基本的MCU研发经验就可以掌握&#xff0c;让您快速实现zigbee组网和节点之间通信。 本教程采用…

第一章:zigbee学习笔记之简介(上)

注&#xff1a;文章转载自https://blog.csdn.net/tainjau/article/details/81540013 写在前面&#xff1a; 最近开始搞智能家居的项目&#xff0c;之前只是了解过zigbee&#xff0c;但是并未深入学习过&#xff0c;所以工作之余&#xff0c;忙里偷闲下&#xff0c;学习一下zigb…

zigbee菜鸟笔记(一)zigbee的基础知识

一.什么是zigbee 有问题发送邮件至468078841qq.com ZigBee&#xff0c;也称紫蜂&#xff0c;是一种低速短距离传输的无线网上协议&#xff0c;底层是采用IEEE 802.15.4标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网上节点、支持多种网上拓扑、低…

TI CC2538 做ZigBee协调器控制飞利浦 Hue 调色灯

【源码、文档、软件、硬件、技术交流、技术支持&#xff0c;入口见文末】 一、实验准备 1.1 硬件准备 1.1.1 CC2538 模块 本文中使用的 CC2538 模块是带 PA 芯片&#xff08;CC2592&#xff09;的。此外&#xff0c;最好是带焊接好的底板&#xff0c;便于后面与串口转USB…