基于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中闭包概念与用法深入理解

