共计 686 个字符,预计需要花费 2 分钟才能阅读完成。
场景:
应用 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