基于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 相关文章推荐
Jquery AutoComplete自动完成 的使用方法实例
Mar 19 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
jQuery使用之标记元素属性用法实例
Jan 19 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
浅谈Javascript数组的使用
Jul 29 Javascript
适用于javascript开发者的Processing.js入门教程
Feb 24 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
对VUE中的对象添加属性
Sep 18 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 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
数据库查询记录php 多行多列显示
2009/08/15 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP异常处理Exception类
2015/12/11 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
python实现简易数码时钟
2021/02/19 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Django中URL的参数传递的实现
2019/08/04 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
基于python实现模拟数据结构模型
2020/06/12 Python
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
最新大学生自我评价
2013/09/24 职场文书
车间副主任岗位职责
2013/12/24 职场文书
仓管员岗位责任制
2014/02/19 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
安全生产管理责任书
2014/04/16 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
自主招生专家推荐信
2015/03/26 职场文书
办公室禁烟通知
2015/04/23 职场文书