Vue前端循环调用接口拿到分页接口的全部数据
时间: 2023-10-08 10:07:42 浏览: 98
可以通过递归调用接口来实现循环获取分页接口的全部数据。具体实现可以参考下面的代码:
```javascript
async function getAllData() {
let allData = []
let page = 1
let pageSize = 10
let total = 0
while (true) {
// 调用分页接口获取数据
const res = await getPageData(page, pageSize)
const { data, count } = res
allData = allData.concat(data)
total = count
// 如果已经获取了所有数据,则跳出循环
if (allData.length >= total) {
break
}
// 否则继续获取下一页数据
page++
}
return allData
}
async function getPageData(page, pageSize) {
const res = await axios.get('/api/data', {
params: {
page,
pageSize
}
})
return res.data
}
```
上面的代码通过 `getAllData` 函数来递归调用分页接口,每次获取一页数据并将其合并到 `allData` 数组中,直到获取到全部数据为止。同时,每次调用分页接口时都会传递页码和每页数据数量参数,以便获取指定页的数据。
需要注意的是,在实际开发中,还需要处理分页接口调用失败等异常情况。另外,如果分页接口返回的数据量较大,可能会对性能产生影响,需要根据实际情况进行优化。
阅读全文