基于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 AnythingSlider滑动效果插件
Feb 07 Javascript
div层的移动及性能优化
Nov 16 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
jquery创建一个ajax关键词数据搜索实现思路
Feb 26 Javascript
基于jQuery实现模拟页面加载进度条
Apr 01 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
JavaScript闭包实例讲解
Apr 22 Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
如何实现echarts markline标签名显示自己想要的
Jul 20 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来处理多个提交任务
2008/05/08 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php实现生成验证码实例分享
2016/04/10 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
vue实现拖拽效果
2019/12/23 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python中pillow知识点学习
2018/04/30 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
python读写配置文件操作示例
2019/07/03 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
联欢晚会主持词
2014/03/25 职场文书
供货协议书
2014/04/22 职场文书
2014年派出所工作总结
2014/11/21 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书