【vue 仿百度分页】

vue 仿百度分页

效果图

在这里插入图片描述

代码

  1. 公用组件
<template><nav class="pagination_nav"><ul class="pagination"><li :class="{ 'disabled': current == 1 }"><a href="javascript:;" @click="setCurrent(current - 1)"> « </a></li><li :class="{ 'disabled': current == 1 }"><a href="javascript:;" @click="setCurrent(1)"> 首页 </a></li><li v-for="p in grouplist" :class="{ 'active': current == p.val }"><a href="javascript:;"@click="setCurrent(p.val)"> {{ p.text }} </a></li><li :class="{ 'disabled': current == page }"><a href="javascript:;" @click="setCurrent(page)"> 尾页 </a></li><li :class="{ 'disabled': current == page }"><a href="javascript:;" @click="setCurrent(current + 1)"> »</a></li></ul></nav>
</template><script type="es6">
export default {data() {return {current: this.currentPage}},props: {total: {// 数据总条数type: Number,default: 0},pageSize: {// 每页显示条数type: Number,default: 10},currentPage: {// 当前页码type: Number,default: 1},pagegroup: {// 分页条数type: Number,default: 10,coerce: function (v) {v = v > 0 ? v : 5;return v % 2 === 1 ? v : v + 1;}}},computed: {page: function () { // 总页数return Math.ceil(this.total / this.pageSize);},grouplist: function () { // 获取分页页码var len = this.page, temp = [], list = [], count = Math.floor(this.pagegroup / 2), center = this.current;if (len <= this.pagegroup) {while (len--) {temp.push({ text: this.page - len, val: this.page - len });};return temp;}while (len--) {temp.push(this.page - len);};var idx = temp.indexOf(center);(idx < count) && (center = center + count - idx);(this.current > this.page - count) && (center = this.page - count);temp = temp.splice(center - count - 1, this.pagegroup);do {var t = temp.shift();list.push({text: t,val: t});} while (temp.length);if (this.page > this.pagegroup) {(this.current > count + 1) && list.unshift({ text: '...', val: list[0].val - 1 });(this.current < this.page - count) && list.push({ text: '...', val: list[list.length - 1].val + 1 });}return list;}},methods: {setCurrent: function (idx) {if (this.current != idx && idx > 0 && idx < this.page + 1) {this.current = idx;this.$emit('pagechange', this.current);}}}
}
</script><style lang="less">
.pagination_nav {background-color: #FFF;box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);height: 56px;display: flex;align-items: center;padding: 0 10px;.pagination {overflow: hidden;display: table;margin: 0 auto;height: 50px;li {float: left;height: 40px;border-radius: 5px;margin: 3px;color: #666;margin-right: 10px;& :hover {background: rgba(77, 167, 56, 1);color: #fff;a {color: #fff;}}a {display: block;width: 40px;height: 40px;text-align: center;line-height: 40px;font-size: 16px;border-radius: 5px;text-decoration: none;color: #333;}}.active {background: #4DA738;a {color: #fff;}}}
}
</style>
  1. 调用
<template><Pagination :current-page="query.current" :page-size="query.size" :total="total" @pagechange="handlePageChange" />
</template><script>
import Pagination from "@/component/pagination.vue";
export default {components: { Pagination },data() {return {query: {current: 1,size: 10},total: 0,}},methods:{/*** 当前是第几页* @param {Int} val*/handlePageChange(val) {this.query.current = val;this.fetchData();}}
}
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

页表和cache

页表基本原理 页表主要用来将虚拟地址映射到物理地址&#xff0c;在使用虚拟地址访问内存时&#xff0c;微处理器首先将虚拟地址拆分成页号和页内偏移量&#xff0c;然后使用页号在页表中查找对应的物理页框号&#xff0c;将物理页地址加上页内偏移量&#xff0c;得到最终的物…

Rust核心功能之一(所有权)

目录 1、什么是所有权&#xff1f; 1.1 所有权规则 1.2 变量作用域 1.3 String 类型 1.4 内存与分配 变量与数据交互的方式&#xff08;一&#xff09;&#xff1a;移动 变量与数据交互的方式&#xff08;二&#xff09;&#xff1a;克隆 只在栈上的数据&#xff1a;拷贝…

如何使用Pyarmor保护你的Python脚本

目录 一、Pyarmor简介 二、使用Pyarmor保护Python脚本 1、安装Pyarmor 2、创建Pyarmor项目 3、添加Python脚本 4、配置执行环境 5、生成保护后的脚本 三、注意事项与未来发展 四、未来发展 五、总结 本文深入探讨了如何使用Pyarmor工具保护Python脚本。Pyarmor是一个…

k8s的安装部署,详细过程展示(保姆级安装教程)

k8s应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程序定义资源使用…

Python 的 datetime 模块

目录 简介 一、date类 &#xff08;一&#xff09;date 类属性 &#xff08;二&#xff09;date 类方法 &#xff08;三&#xff09;实例属性 &#xff08;四&#xff09;实例的方法 二、time类 &#xff08;一&#xff09;time 类属性 &#xff08;二&#xff09;tim…

UDP网络编程

一)熟悉TCP/IP五层协议: 1)封装:就是在数据中添加一些辅助传输的信息&#xff1b; 2)分用:就是解析这些信息 3)发送数据的时候&#xff0c;上层协议要把数据交给下层协议&#xff0c;由下层协议来添加一些信息 4)接收数据的时候&#xff0c;下层协议要把数据交给上层协议&#…

Python初学者软件以及如何安装和配置,新手入门必看系列。

文章目录 前言一、Python软件二、集成开发环境&#xff08;IDE&#xff09;1.PyCharm2.Spyder3.IDLE 三、包管理工具四、使用Python虚拟环境总结Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学习视频5、实战案例6、清华编程大佬出品《漫画看学…

探索云世界的无限可能

文章目录 每日一句正能量前言云计算的定义和现状云计算能做什么&#xff1f;云计算市场的新特征需求方向&#xff1a;云计算的基础服务已经稳固&#xff0c;行业解决方案是新的发力点模式方向&#xff1a;分布式云模式方向&#xff1a;边缘计算是一朵新的云技术方向&#xff1a…

AMESim 2021安装教程

主要是AMESim的安装 写在前面&#xff0c;由于项目需要&#xff0c;需要自学AMESim&#xff0c;因此需要安装这个软件&#xff0c;目前仅仅安装使用&#xff0c;还不涉及到与MATLAB的联合仿真&#xff0c;老板说用 RT LAB半实物仿真平台&#xff0c;但是简单搜了一下&#xff0…

ASUS华硕灵耀X2 Duo UX481FA(FL,FZ)_UX4000F工厂模式原装出厂Windows10系统

下载链接&#xff1a;https://pan.baidu.com/s/1sRHKBOyc3zu1v0qw4dSASA?pwd7nb0 提取码&#xff1a;7nb0 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序所需要工具&#xff1a;16G或以上…

麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包

原文链接&#xff1a;麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包&#xff0c;本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版…

Vite项目的初体验 - 非Vite脚手架版本

开箱即用 &#xff08;out of box&#xff09;: 无需做任何的配置&#xff0c;就可以用vite来帮助我们处理构建工作。 前提 &#xff1a;node 版本 > 12.0.0&#xff0c;使用 npm 进行依赖管理。 本文的案例&#xff0c;从0到1的&#xff0c;一步一步的体会vite的作用。 本文…

图解三傻排序 选择排序、冒泡排序、插入排序

&#xff08;1&#xff09;选择排序 // 交换 void swap(int arr[], int i, int j) {int tmp arr[i];arr[i] arr[j];arr[j] tmp; }// 选择排序 void selectionSort(int arr[],int len) {if (len < 2) return;for (int minIndex, i 0; i < len - 1; i) {minIndex i;f…

WPS的JS宏基础(一)

基础知识 1、简单的第一个宏 //注意function只能全部用小写 function demo(){alert("你好!") }2、录制宏生成工资条 function 使用录制宏自动生成代码以JS宏为例()//使用相对引用 {Selection.Copy(undefined);ActiveCell.Offset(5, 0).Range("A1:M4").I…

Ubuntu22.04 下 NFS 相关问题与完整配置(客户机 MacOS)

categories: [Linux-Shell] tags: Linux NFS 写在前面 最近折腾一下 NFS, 先白嫖一顿华子云的 1 个月服务器, 2C4G 感觉不错了, 但NFS 配置起来还是有点难度, 主要还是随机分配的端口配置方面比较恶心. server环境: 华为云 2C4G Ubuntu22.04 client环境: MacOS M1 with brew …

排序算法的分析及实现

目录​​​​​​​ 1. 排序 1.1. 排序的概念 1.2. 排序的稳定性 1.3. 内部排序和外部排序 2. 直接插入排序 2.1. 直接插入排序 2.2. 直接插入排序的两种情况 1. 情况一 2. 情况二 2.3. 直接插入排序的单趟排序 2.4. 直接插入排序的完整实现 2.5. 直接插入排序的时…

接收表单数据

如果您尝试按下提交按钮&#xff0c;浏览器将显示“Method Not Allowed”错误。这是因为到目前为止&#xff0c;前一节中的登录视图函数完成了一半的工作。它可以在网页上显示表单&#xff0c;但是还没有逻辑来处理用户提交的数据。这是Flask-WTF使工作变得非常简单的另一个领域…

selenium xpath定位

selenium-xpath定位 <span style"background-color:#2d2d2d"><span style"color:#cccccc"><code class"language-javascript">element_xpath <span style"color:#67cdcc"></span> driver<span styl…

有什么可以自动保存微信文件的方法么?

8-3 本文要介绍的方法&#xff0c;可以自动帮你保存微信上收到的文件型数据&#xff0c;比如文件、图片、视频&#xff0c;如果你的工作需要每天或者经常保存大量的从微信收到的文件型数据&#xff0c;也许本文适合你&#xff0c;本文介绍的工具&#xff0c;对微信多开也有效果…

Git安装配置保姆级教程和Git创建仓库的基本原理和常用命令

目录 前言 一、Git简介 1.Git 与 SVN 区别点 2.Git的介绍 3.Git 工作流程 4.Git 工作区、暂存区和版本库 二、Git安装配置 1.Linux 平台上安装 2.Windows 平台上安装 三、Git 创建仓库和下载 1、首先需要注册一个gitee账号 2.git初始化并提交到远程仓库 3.另一用户…