基于Vue2.0的分页组件

发布时间 - 2026-01-11 00:12:35    点击率:

本文实例为大家分享了Vue2.0分页组件的具体实现代码,供大家参考,具体内容如下

整个示例打包了,有需要的可以下载,有不对的地方欢迎指出:vue分页组件

组件部分代码:

Vue.component('zpagenav', { 
 template: `<nav class="zpagenav">` + 
     `<ul class="page-ul">` + 
      `<li v-bind:key="index" v-for="(item,index) in pageList" v-bind:class ="item.class" @click.stop="setPage(item)" v-html="item.html">` + 
      `</li>` + 
     `</ul>` + 
     `<span class="total">共 {{total}} 条</span>` + 
    `</nav>`, 
 props: { 
  prevHtml: String, 
  nextHtml: String, 
  page: Number, 
  total: Number, 
  pageSize: Number, 
  maxPage: Number 
 }, 
 computed: { 
  pageList: function () { 
   var _this = this, pageList = []; 
   let pageCount = Math.ceil(_this.total / _this.pageSize); 
   let page = _this.page; 
   let prevHtml = _this.prevHtml ? _this.prevHtml : '<'; 
   let nextHtml = _this.nextHtml ? _this.nextHtml : '>'; 
   let maxPage = _this.maxPage ? _this.maxPage : 9; 
 
   let hasPrev = page > 1; 
   let hasNext = page < pageCount; 
 
   //上一页 
   pageList.push({ 
    class: hasPrev ? '' : 'disabled', 
    page: hasPrev ? page - 1 : page, 
    html: prevHtml 
   }); 
 
   //首页 
   pageList.push({ 
    class: page == 1 ? 'active' : '', 
    page: 1, 
    html: 1 
   }); 
 
   var p0 = Math.floor(maxPage / 2); 
   var p1 = 1 + 2 + p0; //首页+省略至少2个页码+中间页面数的一半 
 
   var start, end; 
   if (page >= p1) { 
    start = page - p0; 
    //前置省略号 
    pageList.push({ 
     class: 'dot', 
     page: page, 
     html: '...' 
    }); 
   } else { 
    start = 2; 
   } 
 
   var p2 = page + p0; 
   if (p2 < pageCount) { 
    end = p2; 
   } else { 
    end = pageCount - 1; 
   } 
 
 
   //页码列表 
   for (let i = start; i <= end; i++) { 
    pageList.push({ 
     class: page == i ? 'active' : '', 
     page: i, 
     html: i 
    }); 
   } 
 
 
   if (end < pageCount - 1) { 
    //后置省略号 
    pageList.push({ 
     class: 'dot', 
     page: page, 
     html: '...' 
    }); 
   } 
 
 
   //尾页 
   if (pageCount > 1) { 
    pageList.push({ 
     class: page == pageCount ? 'active' : '', 
     page: pageCount, 
     html: pageCount 
    }); 
   } 
 
   //下一页 
   pageList.push({ 
    class: hasNext ? '' : 'disabled', 
    page: hasNext ? page + 1 : page, 
    html: nextHtml 
   }); 
 
   return pageList; 
  } 
 }, 
 methods: { 
  setPage: function (item) { 
   if (item.class == '') { 
    this.$emit('pagehandler', item.page); 
   } 
  } 
 } 
}); 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Vue  # Vue2.0  # 分页组件  # 基于Vue.js的表格分页组件  # vue分页组件table-pagebar使用实例解析  # 基于Vue如何封装分页组件  # Vue.js实现一个自定义分页组件vue-paginaiton  # 使用vue.js制作分页组件  # 基于vue2的table分页组件实现方法  # 基于vue实现swipe分页组件实例  # vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法  # VUE实现一个分页组件的示例  # vue实现分页组件  # 分页  # 首页  # 下一页  # 上一页  # 尾页  # 大家分享  # 可以下载  # 具体内容  # 大家多多  # 包了  # page  # li  # bind  # lt  # nav  # gt  # ul  # click  # stop  # setPage 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  JavaScript常见的五种数组去重的方式  bootstrap日历插件datetimepicker使用方法  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel怎么在Blade中安全地输出原始HTML内容  北京专业网站制作设计师招聘,北京白云观官方网站?  微信小程序 配置文件详细介绍  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Android 常见的图片加载框架详细介绍  Python函数文档自动校验_规范解析【教程】  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  如何用西部建站助手快速创建专业网站?  JS经典正则表达式笔试题汇总  JS中对数组元素进行增删改移的方法总结  如何在腾讯云服务器上快速搭建个人网站?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  再谈Python中的字符串与字符编码(推荐)  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Linux网络带宽限制_tc配置实践解析【教程】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  在centOS 7安装mysql 5.7的详细教程  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  大连网站制作公司哪家好一点,大连买房网站哪个好?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  EditPlus中的正则表达式实战(5)  如何在Ubuntu系统下快速搭建WordPress个人网站?  phpredis提高消息队列的实时性方法(推荐)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在Windows环境下新建FTP站点并设置权限?  深入理解Android中的xmlns:tools属性  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何快速使用云服务器搭建个人网站?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  如何在宝塔面板中创建新站点?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  太平洋网站制作公司,网络用语太平洋是什么意思?  中国移动官方网站首页入口 中国移动官网网页登录  javascript中闭包概念与用法深入理解