vue.js表格分页示例


Posted in Javascript onOctober 18, 2016

分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。

效果:

vue.js表格分页示例

代码:

1.注册一个组件

js

Vue.component('pagination',{
 template:'#paginationTpl',
 replace:true,
 props:['cur','all','pageNum'],
 methods:{
 //页码点击事件
 btnClick: function(index){
 if(index != this.cur){
  this.cur = index;
 }
 }
 },
 watch:{
 "cur" : function(val,oldVal) {
 this.$dispatch('page-to', val);
 }
 },
 computed:{
 indexes : function(){
 var list = [];
 //计算左右页码
 var mid = parseInt(this.pageNum / 2);//中间值
 var left = Math.max(this.cur - mid,1);
 var right = Math.max(this.cur + this.pageNum - mid -1,this.pageNum);
 if (right > this.all ) { right = this.all}
 while (left <= right){
  list.push(left);
  left ++;
 }
 return list;
 },
 showLast: function(){
 return this.cur != this.all;
 },
 showFirst: function(){
 return this.cur != 1;
 }
 }
 });

模板:

<script type="text/template" id="paginationTpl">
 <nav v-if="all > 1">
 <ul class="pagination">
 <li v-if="showFirst"><a href="javascript:" @click="cur--">«</a></li>
 <li v-for="index in indexes" :class="{ 'active': cur == index}">
 <a @click="btnClick(index)" href="javascript:">{{ index }}</a>
 </li>
 <li v-if="showLast"><a @click="cur++" href="javascript:">»</a></li>
 <li><a>共<i>{{all}}</i>页</a></li>
 </ul>
 </nav>
</script>

HTML:

<div id='item_list'>
 ...
 <pagination :cur="1" :all="pageAll" :page-num="10" @page-to="loadList"></pagination>
</div>

当点击分页链接的时候,通过watch cur,子组件分发 page-to 事件,通过 @page-to="loadList" 标签指定使用父组件 loadList 方法处理事件,父组件接收到page值然后ajax加载数据,根据服务端返回计算并更新自身的 pageAll 值,因为子组件prop通过 :all="pageAll" 动态绑定了父组件的pageAll对象,所以子组件会联动更新。

附上一个简单的表格组件例子:

var vm = new Vue({
 el: "#item_list",
 data: {
 items : [],
 //分页参数
 pageAll:0, //总页数,根据服务端返回total值计算
 perPage:10 //每页数量
 },
 methods: {
 loadList:function(page){
 var that = this;
 $.ajax({
  url : "/getList",
  type:"post",
  data:{"page":page,"perPage":this.perPage},
  dataType:"json",
  error:function(){alert('请求列表失败')},
  success:function(res){
  if (res.status == 1) {
  that.items = res.data.list;
  that.perPage = res.data.perPage;
  that.pageAll = Math.round(res.data.total / that.perPage);//计算总页数
  }
  }
 });
 },
 //初始化
 init:function(){
 this.loadList(1);
 }
 }
 });
 vm.init();

精彩专题分享:jquery分页功能操作 JavaScript分页功能操作

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

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

Javascript 相关文章推荐
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
Sep 08 Javascript
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
一行代码告别document.getElementById
Jun 01 Javascript
javascript打开word文档的方法
Apr 16 Javascript
js 去除字符串第一位逗号的方法
Jun 07 Javascript
JS是按值传递还是按引用传递
Jan 30 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
JavaScript实现栈结构详细过程
Dec 06 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 #Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 #Javascript
微信小程序 教程之WXSS
Oct 18 #Javascript
微信小程序 教程之引用
Oct 18 #Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 #Javascript
微信小程序 教程之事件
Oct 18 #Javascript
微信小程序 教程之模板
Oct 18 #Javascript
You might like
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python操作CouchDB数据库简单示例
2015/03/10 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python学习开发mock接口
2019/04/28 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
python deque模块简单使用代码实例
2020/03/12 Python
keras topN显示,自编写代码案例
2020/07/03 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
毕业自我评价
2014/02/05 职场文书
分家协议书
2014/04/21 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
单位接收证明格式
2015/06/18 职场文书
跳高加油稿
2015/07/21 职场文书
Python面向对象编程之类的概念
2021/11/01 Python
JavaScript的function函数详细介绍
2021/11/20 Javascript
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏