基于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 相关文章推荐
javascript 面向对象编程  function是方法(函数)
Sep 17 Javascript
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
Jun 14 Javascript
jQuery根据纬度经度查看地图处理程序
May 08 Javascript
JS中的eval 为什么加括号
Apr 13 Javascript
js select实现省市区联动选择
Apr 17 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
Feb 26 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP新手上路(七)
2006/10/09 PHP
php下载远程文件类(支持断点续传)
2008/11/14 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
如何在php中正确的使用json
2013/08/06 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
javascript 文档的编码问题解决
2009/03/01 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python二元表达式用法
2019/12/04 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
电子商务个人职业生涯规划范文
2014/02/12 职场文书
开门红主持词
2014/04/02 职场文书