假分页就是前端一次请求,后端一次性查询返回所有页数,之后前端的请求全从之前拿到的里面分批给前端页面。
小声bb:一般来说,分页效果肯定是后端接口提供,如果后端不愿意提供,那你可以买一杯奶茶请他喝掉然后揍shi祭天了。
当然肯定有特殊情况需要前端自己写分页:比如前端导入excel到表格中,这时候无法请求后端给你带分页的接口,这时候你前端的增删改查全部都要用js模拟出来,然后保存的结果再去请求后端接口保存在数据库。
下面分享js模拟分页思路:
那么分页会出现两种情况:
- 总条数total > 当前页数据条数pageSize => 截取对应条数据给table
- 总条数total < 当前页数据条数pageSize => 把所有数据都给表格table
//直接上代码
<template>
<div class="orderSaveResult">
<avue-crud :data="notSaveTable.data" :option="notSaveTable.option" :page.sync="notSaveTable.page"
@on-load="notSaveTableOnload"
@current-change="notSaveTableCurrentChange"
@size-change="notSaveTableSizeChange"
>
</avue-crud>
</div>
</template>
<script>
import notSaveTable from './const/notSaveTable'
export default {
name: "orderSaveResult",
data() {
return {
notSaveTable,
notSaveTableData: [],
}
},
created() {
if (sessionStorage.getItem('setOrderData')) {
if (data) {
this.notSaveTable.data = data.notSaveList
this.notSaveTable.page.total = data.notSaveList.length
this.notSaveTableData = data.notSaveList
}
}
},
methods: {
notSaveTableOnload(page) {
let val = page
//表格onLoad函数,页面第一次渲染会传过来page对象,先判断一下如果是对象默认显示第一页,否则就是切换分页传过来的页码值
if (page.toString() == '[object Object]') {
val = 1
}
this.notSaveTable.data = []
//分页js
for (var i = this.notSaveTable.page.pageSize * (val - 1); i < ((this.notSaveTable.page.total > this.notSaveTable.page.pageSize * val) ? (this.notSaveTable.page.pageSize * val) : (this.notSaveTable.page.total)); i++) {
}
this.notSaveTable.data = this.notSaveTableData.slice(this.notSaveTable.page.pageSize * (val - 1), i)
},
notSaveTableCurrentChange(page) {
console.log(page)
this.notSaveTable.page.currentPage = page
this.notSaveTableOnload(this.notSaveTable.page.currentPage)
},
notSaveTableSizeChange(size) {
this.notSaveTable.page.currentPage = 1
this.notSaveTable.page.pageSize = size
this.notSaveTableOnload(this.notSaveTable.page.currentPage)
},
}
}
</script>
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!