基于vue.js实现的分页


Posted in Javascript onMarch 13, 2018

本文主要介绍基于vue的分页原生写法。

先po上效果图:

基于vue.js实现的分页

html部分,将page作为一个单独的组件

<script type="text/x-template" id="page">
  <ul class="pagination">
   <li v-show="current != 1" @click="current-- && goto(current)">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上一页</a>
   </li>
   <li v-for="index in pages" @click="goto(index)" :class="{'active':current == index}" :key="index">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{{index}}</a>
   </li>
   <li v-show="allpage != current && allpage != 0 " @click="current++ && goto(current++)">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >下一页</a>
   </li>
  </ul>
 </script>
 <div id="app">
  <page></page>
 </div>

js部分:

<script>
  Vue.component("page", {
   template: "#page",
   data: function () {
    return {
     current: 1, // 当前页码
     showItem: 5, // 最少显示5个页码
     allpage: 13 // 总共的
    }
   },
   computed: {
    pages: function () {
     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
    }
   },
   methods: {
    goto: function (index) {
     if (index == this.current) return;
     this.current = index;
     //这里可以发送ajax请求
    }
   }
  })
  var vm = new Vue({
   el: '#app',
  })
 </script>

css部分:

body {
   font-family: "Segoe UI";
  }
  li {
   list-style: none;
  }
  a {
   text-decoration: none;
  }
  .pagination {
   position: relative;
  }
  .pagination li {
   display: inline-block;
   margin: 0 5px;
  }
  .pagination li a {
   padding: .5rem 1rem;
   display: inline-block;
   border: 1px solid #ddd;
   background: #fff;
   color: #0E90D2;
  }
  .pagination li a:hover {
   background: #eee;
  }
  .pagination li.active a {
   background: #0E90D2;
   color: #fff;
  }

最后附上github地址:https://github.com/AmberWuWu/vue-page

总结

以上所述是小编给大家介绍的基于vue.js实现的分页,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 字符串连接[性能比较]
May 10 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
使用js画图之画切线
Jan 12 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
jquery实现简洁文件上传表单样式
Nov 02 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
让IDE识别webpack的别名alias的实现方法
May 06 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 #Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 #Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 #Javascript
vue加载自定义的js文件方法
Mar 13 #Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 #Javascript
vue页面离开后执行函数的实例
Mar 13 #Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 #Javascript
You might like
德生PL660的电路分析和打磨
2021/03/02 无线电
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
python实现贪吃蛇游戏
2020/03/21 Python
python小项目之五子棋游戏
2019/12/26 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
python 实现字符串下标的输出功能
2020/02/13 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
主管竞聘书范文
2014/03/31 职场文书
绿色小区申报材料
2014/08/22 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL