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 相关文章推荐
清空上传控件input file的值
Jul 03 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
Aug 19 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
Mar 16 Javascript
结合Vue控制字符和字节的显示个数的示例
May 17 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
一文了解vue-router之hash模式和history模式
May 31 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
图解上海144收音机
2021/03/02 无线电
一个简单的域名注册情况查询程序
2006/10/09 PHP
php计算整个目录大小的方法
2015/06/19 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
php命令行模式代码实例详解
2021/02/26 PHP
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python使用OpenCV进行标定
2018/05/08 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
Python包和模块的分发详细介绍
2020/06/19 Python
简单了解Django项目应用创建过程
2020/07/06 Python
python requests库的使用
2021/01/06 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
个人自我鉴定
2013/11/07 职场文书
2015年社区工作总结
2015/04/08 职场文书
学校少先队工作总结
2015/08/12 职场文书
岗位聘任协议书
2015/09/21 职场文书