1.在data里面添加: isLoading: false // 是否正在请求数据,默认不请求数据
2.在请求数据前后,分别打开和关闭节流阀
async getGoodsList() {
// ** 打开节流阀
this.isloading = true
// 发起请求
const { data: res } = await uni.$http.get('www.baidu.com', 传递的参数)
// ** 关闭节流阀
this.isloading = false // 当isLoading = false 时,代表当前可以发送下一次数据请求
}
3.在下次请求前通过节流阀状态,来决定是否发起请求
// 触底的事件
onReachBottom() {
// 判断是否正在请求其它数据,如果是,则不发起额外的请求
if (this.isloading) return
this.queryObj.pagenum += 1 // 当前页码向后加1
this.getGoodsList()
}
拓展:如何判断数据是否加载完毕?
如:当我们pageTotal = 24,有如下等式成立:
当前的页面值 * 每页显示多少条数据 >= 总数条数
pageNum * pageSize >= pageTotal
当上述条件成立,则我们不再发送数据请求