基于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 相关文章推荐
网站上面有这种切换效果
Jun 26 Javascript
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
js实现特定位取反原理及示例
Jun 30 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
JavaScript编写九九乘法表(两种任选)
Feb 04 Javascript
BootStrap selectpicker后台动态绑定数据
Jun 01 Javascript
微信小程序自定义扫码功能界面的实现代码
Jul 02 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
Vue 修改网站图标的方法
Dec 31 Vue.js
vue实现Toast组件轻提示
Apr 10 Vue.js
微信小程序中实现手指缩放图片的示例代码
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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
php生成圆角图片的方法
2015/04/07 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
php post换行的方法
2020/02/03 PHP
DIV菜单层实现代码
2010/11/19 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python魔术方法专题
2020/06/19 Python
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
一套软件测试笔试题
2014/07/25 面试题
活动总结的格式
2014/05/07 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL