最近使用vue+vant开发移动端项目,同事遇到一个神奇的坑,后端要求每次请求列表数据页数为5条,他mock数据开发的时候没觉得坑,等到联调的时候发现,列表数据会多次请求接口,一直找不到原因,后来帮其排查,我拿到代码看页面表现的时候感觉应该不是bug,看起来像是正常表现,于是有了以下对话
但是仅仅为猜测,为了验证我的想法我专门写了一个demo测试,伪造一个接口请求,然后做测试,代码如下:
每次请求5条数,我发现vant-list表现形式如下 :
会一直请求四次,直到列表超出当前视窗,才会停止,而改为每次请求20条之后 则是以下情况
因为列表一下子超出了视窗,所以请求一次就停止了,而将total改为了15后,也是请求了所有数据就自动停止了
而在源码中也有相关和scroller的判断
综上所述:在列表请求数据条数过低的时候van-list反复多次的请求 属于正常现象,如果觉得接口请求过于频繁的话,可以通过更改请求的最大页数来杜绝这种现象,一般设置为20或者50即可,可根据业务需求以及后端接口要求来设置合适的pageSize。