基于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 相关文章推荐
统计出现最多的字符次数的js代码
Dec 03 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
在vue项目中使用sass的配置方法
Mar 20 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
dts文件中删除一个node或属性的操作方法
Aug 05 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
Vue.Draggable拖拽功能的配置使用方法
Jul 29 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
js new Date()实例测试
Oct 31 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
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
详解webpack babel的配置
2018/01/09 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
Python实例一个类背后发生了什么
2016/02/09 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
简单实现python聊天程序
2018/04/01 Python
Python----数据预处理代码实例
2019/03/20 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
户外拓展活动方案
2014/02/11 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
助学金感谢信
2015/01/20 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Python作用域和名称空间的详细介绍
2022/04/13 Python