<template>
<div>
<ul class="pagination">
<li @click="goTo(1)"><a>首页</a></li>
<li v-show="current != 1" @click="goTo(current-1)"><a>上一页</a></li>
<li v-for="index in pages" @click="goTo(index)" :class="{'active':current == index}" :key="index">
<a>{{index}}</a>
</li>
<li v-show="allPage != current && allPage != 0 " @click="goTo(current+1)"><a>下一页</a></li>
<li v-on:click="goTo(allPage)"><a>尾页</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'pagination',
props: ['showItem','allPage'],
computed: {
pages() {
var pag = [];
if (this.current < this.showItem) {
var i = Math.min(this.showItem, this.allPage);
while (i) {
pag.unshift(i--);
}
} else {
var middle = this.current - Math.floor(this.showItem / 2),
i = this.showItem;
if (middle > (this.allPage - this.showItem)) {
middle = (this.allPage - this.showItem) + 1
}
while (i--) {
pag.push(middle++);
}
}
return pag
},
current(){
return this.$route.params.page || 1
}
},
methods: {
goTo(index) {
// 点击后路由跳转
this.$router.push({
params: {
page: index
}
})
}
}
}
</script>
<style lang="scss">
.pagination {
position: relative;
text-align: center;
} .pagination li {
display: inline-block;
margin: 0 5px;
cursor: pointer;
} .pagination li a {
padding: 10px 13px;
display: inline-block;
border: 1px solid #f3f3f3;
background: #fff; color: green;
} .pagination li a:hover {
background: #eee;
} .pagination li.active a {
background: #DE333A;
color: #fff;
border: 1px solid #DE333A;
}
</style>

组件说明:路由中的page是动态路由,props中的showItem表示要显示多少页,allPage表示一共多少页。

路由跳转后,你可以在父组件中的created钩子中根据路由请求数据

github

vue分页组件的更多相关文章

  1. 基于 bootstrap 的 vue 分页组件

    申手党点这里下载示例 基于 bootstrap 的 vue 分页组件,我想会有那么一部分同学,在使用Vue的时候不使用单文件组件,因为不架设 NodeJS 服务端.那么网上流传的 *.vue 的各种分 ...

  2. java+springBoot+Thymeleaf+vue分页组件的定义

    导读 本篇着重介绍java开发环境下,如何写一个vue分页组件,使用到的技术点有java.springBoot.Thymeleaf等: 分页效果图 名称为vuepagerbasic的分页组件,只包含上 ...

  3. vue分页组件table-pagebar

    之前一直接触都是原始的前端模型,jquery+bootstrap,冗杂的dom操作,繁琐的更新绑定.接触vue后,对前端MVVM框架有了全新的认识.本文是基于webpack+vue构建,由于之前的工作 ...

  4. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  5. vue分页组件重置到首页问题

    分页组件,可以借用这个老哥的@暴脾气大大https://www.cnblogs.com/sebastian-tyd/p/7853188.html#4163272 但是有一个问题就是下面评论中@ Mrz ...

  6. VUE 分页组件

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. vue分页组件二次封装---每页请求特定数据

    关键步骤: 1.传两个参数:pageCount (每页条数).pageIndex (页码数): 2.bind方法的调用 <!-- 这部分是分页 --> <div class=&quo ...

  8. vue分页组件火狐中出现样式问题

    分页的操作到了火狐浏览器会样式 怎么解决? 其实就是将input的type属性变成了text,因为number属性会变成上下的小箭头

  9. 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...

随机推荐

  1. wampServer 安装 Redis 扩展

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守B ...

  2. [Struts2]配置文件

    摘要 在struts2中,有多个配置文件properties或者xml文件,那么它们的加载顺序是怎样的? 配置文件 struts2有以下几种配置文件,并按以下顺序加载 1.default.proper ...

  3. Windows2003配置集群详解

    原文: http://blog.csdn.net/xunyn/article/details/7388900 集群是在一组计算机上运行相同的软件并虚拟成一台主机系统为客户端与应用提供服务:计算机通过缆 ...

  4. JS Range使用整理

    1.获取用户网页选中内容 <p>4月13日消息,据台湾媒体报道,32岁的孙燕姿(Sng Ee Tze)和后天将满34岁的荷兰籍印度尼西亚男友纳迪姆(Nadim Van Der Ros)交往 ...

  5. C++ - 定义无双引号的字符串宏

    在某些特殊场合下,我们可能需要定义一个字符串宏,但又不能用双引号 比如像这样 #define HELLO hello world 如果我们只是简单的展开HELLO,肯定会无法编译 std::cout ...

  6. GDALSetProjection使用的一个注意事项

    GDALSetProjection 简述 GDALSetProjection是用来给GDALDataset设定投影信息(坐标系统)的接口,实际上是GDALDataset::SetProjection这 ...

  7. ASP.NET中TimeSpan的用法

    一.TimeSpan常量.字段 TimeSpan.MaxValue; // 10675199.02:48:05.4775807TimeSpan.MinValue; //-10675199.02:48: ...

  8. export / import 温故而知新

    认知一: 导出的对象被修改,依然会影响原来的对象. 仔细想想这是理所当然的事(说明导出的依然是对象指向内存的地址,所以通常还需要结合深拷贝使用) /** export const state = { ...

  9. Atitit mysql数据库统计信息

    Atitit mysql数据库统计信息 SELECT table_name, table_rows, index_length, data_length, auto_increment, create ...

  10. PNG、 JPG图片压缩方法

    参考链接 https://tinypng.com/developers/reference/python 1.安装 pip install --upgrade tinify 2.使用python脚本压 ...