• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > vue.js表格分页示例

vue.js表格分页示例

作者:吾爱 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue.js示例,vue示例,vue.js 表格,vue.js表格排序,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;
  }
 }
 });
</div>

模板:

<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>
</div>

HTML:

<div id='item_list'>
 ...
 <pagination :cur="1" :all="pageAll" :page-num="10" @page-to="loadList"></pagination>
</div>
</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();
</div>

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

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

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

</div>

您可能想查找下面的文章:

  • vue 2.0路由之路由嵌套示例详解
  • vue.js父组件使用外部对象的方法示例
  • Vue生命周期示例详解
  • Vue.js展示AJAX数据简单示例讲解
  • Vue 单文件中的数据传递示例
  • Vue.js实现一个漂亮、灵活、可复用的提示组件示例
  • vue父子组件的数据传递示例
  • VUE开发一个图片轮播的组件示例代码
  • vue + socket.io实现一个简易聊天室示例代码
  • Vue自定义指令拖拽功能示例

相关文章

  • 2017-05-30vue-router跳转页面的方法
  • 2017-05-30Vue.js仿Metronic高级表格(一)静态设计
  • 2017-05-30基于vue+ bootstrap实现图片上传图片展示功能
  • 2017-05-30vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
  • 2017-05-30vue.js表格组件开发的实例详解
  • 2017-05-30vue.js的提示组件
  • 2017-05-30vue.js入门教程之绑定class和style样式
  • 2017-05-30Vue 单文件中的数据传递示例
  • 2017-05-30Vue.js基础学习之class与样式绑定
  • 2017-09-27Vue-Router动态路由

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Vue结合原生js实现自定义组件自动生成示例
    • vue.js+Element实现表格里的增删改查
    • 利用Vue.js框架实现火车票查询系统(附源码)
    • vue分类筛选filter方法简单实例
    • 详解Vue.js动态绑定class
    • 使用Vue.js创建一个时间跟踪的单页应用
    • Vue v-if v-show语法
    • 浅析vue数据绑定
    • 利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
    • Vue.js 2.0中select级联下拉框实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有