基于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 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
Javascript 写的简单进度条控件
Jan 22 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
javascript中length属性的探索
Jul 31 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
解决ionic和angular上拉加载的问题
Aug 03 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
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
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
提高jQuery性能的十个诀窍
2013/11/14 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python交易记录整合交易类详解
2019/07/03 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
django框架中间件原理与用法详解
2019/12/10 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2015年加油站工作总结
2015/05/13 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
创业计划书之物流运送
2019/09/17 职场文书
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python