基于vue.js的分页插件详解


Posted in Javascript onNovember 27, 2017

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。想了解更多,请戳http://cn.vuejs.org/

html代码:

<div class="page-bar" v-else> 
 <ul> 
  <li style="width: 11%" v-if="showFirst"> 
  <a v-on:click="cur--"> 
   <<</a> 
  </li> 
  <li v-for="index in indexs" v-bind:class="{ 'active': cur == index}"> 
  <a v-on:click="btnClick(index)">{{index}}</a> 
  </li> 
  <li style="width: 11%" v-if="showLast"><a v-on:click="cur++"> >></a></li> 
  <li style="width: 22%;margin-left: 7%"><a>共<i>{{all}}</i>页</a></li> 
 </ul> 
 </div>

css部分,可根据自己的实际需要进行调整:

.page-bar { 
 margin-top: 21px; 
 margin-left: 11%; 
 } 
 
 .page-bar ul, 
 .page-bar li { 
 margin: 0px; 
 padding: 0px; 
 } 
 
 .page-bar ul li { 
 list-style: none; 
 border: 1px solid #ddd; 
 text-decoration: none; 
 position: relative; 
 float: left; 
 text-align: center; 
 padding: 1px 0; 
 margin-left: -1px; 
 line-height: 1.42857143; 
 color: #337ab7; 
 cursor: pointer; 
 width: 8%; 
 } 
 
 .page-bar li:first-child>a { 
 margin-left: 0px 
 } 
 
 .page-bar .active a { 
 color: #fff; 
 cursor: default; 
 background-color: #337ab7; 
 border-color: #337ab7; 
 } 
 
 .page-bar i { 
 font-style: normal; 
 color: #d44950; 
 margin: 0px 4px; 
 font-size: 12px; 
 }

js部分:

首先要创建一个基本组件

var vm = new Vue({ 
 el: 'body', 
 data: { 
 list: null, 
 all: 1, //总页数 
 cur: 1, //当前页码 
 },

继而要利用computed计算页码,

computed: { 
 indexs: function(index) { 
 var left = 1; 
 var right = this.all; 
 var ar = []; 
 if (this.all >= 11) { 
  if (this.cur > 5 && this.cur < this.all - 4) { 
  left = this.cur - 5; 
  right = this.cur + 4; 
  } else { 
  if (this.cur <= 5) { 
  left = 1; 
  right = 10; 
  } else { 
  right = this.all; 
  left = this.all - 9; 
  } 
  } 
 } 
 while (left <= right) { 
  ar.push(left); 
  left++; 
 } 
 return ar; 
 }, 
 showLast: function() { 
 if (this.cur == this.all) { 
  return false 
 } 
 return true 
 }, 
 showFirst: function() { 
 if (this.cur == 1) { 
  return false 
 } 
 return true 
 } 
 }

要给 元素加v-on:click="cur++"事件,所以要在vue里加method方法:

methods: { 
 btnClick: function(items) { //页码点击事件 
 if (items != this.cur) { 
  this.cur = items 
 } 
 } 
},

其实到这里基本上就差不多了,但是可以优化一下,当用户触发点击事件时,页面发生改变,这时要通知其他组件做出改变。

watch: { 
 cur: function(oldValue, newValue) { 
 console.log(arguments) 
 
 } 
 }

观察了cur数据当它改变的时候,可以获取前后值。然后通知其他组件。

后期会在个人GitHub上提交完整版代码

补充效果图展示

基于vue.js的分页插件详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
在Javascript中处理字符串之big()方法的使用
Jun 08 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
Aug 07 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
js实现自定义路由
Feb 04 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
Mar 09 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
30分钟快速实现小程序语音识别功能
Nov 27 Javascript
Vue运用transition实现过渡动画
May 06 Javascript
webpack构建换肤功能的思路详解
Nov 27 #Javascript
vue实现商城上货组件简易版
Nov 27 #Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 #Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 #Javascript
vue实现商城购物车功能
Nov 27 #Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 #Javascript
详解利用Angular实现多团队模块化SPA开发框架
Nov 27 #Javascript
You might like
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Python ldap实现登录实例代码
2016/09/30 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Django rest framework实现分页的示例
2018/05/24 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python 内置模块详解
2019/01/01 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
开业庆典答谢词
2014/01/18 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
护士找工作求职信
2014/07/02 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
校运会宣传稿大全
2015/07/23 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python