vue.js表格分页示例
效果展示:
代码详解:
1. 注册组件:
我们首先创建一个名为'pagination'的Vue组件。这个组件负责显示页码,并响应用户的点击事件。
```javascript
Vueponent('pagination', {
template: 'paginationTpl',
replace: true,
props: ['cur', 'all', 'pageNum'],
methods: {
// 当用户点击某个页码时
btnClick: function(index) {
if (index != this.cur) {
this.cur = index;
}
}
},
watch: {
"cur" (val) {
this.$dispatch('page-to', val); // 当当前页码改变时,触发一个自定义事件
}
},
computed: {
// 计算要显示的页码(根据当前页码、总页码数和每页显示的数目)
indexes() {
let list = [];
const mid = parseInt(this.pageNum / 2); // 中间值
const left = Math.max(this.cur - mid, 1);
const 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; // 返回要显示的页码列表
},
// 其他计算属性...(如是否显示首页、尾页等)
}
});
```
模板部分:对应的HTML模板如下,负责渲染具体的页码和样式。这里使用了`
```html
```javascript
var vm = new Vue({
el: "item_list",
data: {
items: [], // 数据列表
pageAll: 0, // 总页数
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); // 初始化加载第一页数据
}
}
});
vmit(); // 初始化组件
```
编程语言
- vue.js表格分页示例
- Angular.js中定时器循环的3种方法总结
- JS字符串长度判断,超出进行自动截取的实例(支持
- 每天一篇javascript学习小结(Boolean对象)
- php session_decode函数用法讲解
- ISO-8859-1 、Latin-1 西欧编码介绍及应用
- sqlserver 通用分页存储过程
- Iview Table组件中各种组件扩展的使用
- jQuery Easyui Datagrid实现单行的上移下移及保存移动
- 搞定immutable.js详细说明
- 在vue项目中引入highcharts图表的方法(详解)
- vue中实现图片和文件上传的示例代码
- 实例分析PHP将字符串转换成数字的方法
- PHP实现桶排序算法
- JS基于HTML5的canvas标签实现炫目的色相球动画效果
- ASP函数大全解析