场景:
使用el-pagination来做分页,当pageSize和currentPage发生变化时,向后端发送请求,获取分页数据。

在这个场景中,正常情况下要在pageSize发生变化时发送一次请求,在currentPage发生变化时发送一次请求。

现在考虑一种特殊情况,el-pagination中 总数(total)为123,每页数量(page-size)为20,当前页(current-page)为4。

此时用户点击切换每页数量为50 (page-size 变更为50),这种情况下会连续发送两次请求。

1、首先page-size发生变化 ({current-page: 4, page-size: 20} -> {current-page: 4, page-size: 50} ) ,触发@size-change发送一次请求(请求A)。
2、紧接着el-pagination计算4 x 50 > 123,将current-page自行变更为3 ({current-page: 4, page-size: 50} -> {current-page: 3, page-size: 50} ),这次变更触发@current-change又发送了一次请求(请求B)。

实际上请求A是一个无效请求,即使发送了,也取到了数据,还会被后面的请求B所请求的数据所覆盖。

解决方法,@size-change与@current-change触发后调用相同的发送http请求的方法,且给这个方法加上防抖,防抖时间设置10ms。

同步更新到自己的语雀:
https://www.yuque.com/dirackeeko/blog/ydofgb6pkfk1txak


DiracKeeko
125 声望2 粉丝