情景描述:第一次模糊查询后,列表返回的内容重复一次
原因:
为什么 List 初始化后会立即触发 load 事件? List 初始化后会触发一次 load事件,用于加载第一屏的数据,这个特性可以通过immimmediate-check属性关闭。
但是我加了这个属性还是无效,照样自动加载第一屏数据
前提:A页面跳转到B页面,B为列表页,A页面内容超过一屏 正常:上述代码,正常情况下,A跳转到B时,只执行 created 中的 getWorkList 方法,不触发 List 组件中的 getWorkList 异常:但是由于A中内容超过一屏,页面滚动到底部后,再点击跳转到B时,就会将 created 和 List 组件的 getWorkList 都执行一次,导致列表数据重复展示
这是因为第一个页面A和第二个页面B,所监听的滚动条都是html或者body上的滚动条。这就会干扰。
本人放弃了immimmediate-check=false的解决办法,想到的是让它就加载第一屏数据吧,只不过此时我看不到
所以我用到了v-show
<van-pull-refresh v-model="refreshing" @refresh="onRefresh" v-cloak v-show="searchValue" >
最初时候searchValue为null,所以第一屏加载了,至于加载什么样我不关心,但是它确实让我看不到了
第一屏的话加载数据不会无限制,它加载到一定程度,滚动条就离底部变高,此时就不会再触发onload事件
参考:
(37条消息) Vant中List组件immediate-check=false无效_笑道三千的博客-CSDN博客_immediate-check 不起作用
(37条消息) vant-list组件触发多次onload事件导致数据乱序的问题解决_huangzhin的博客-CSDN博客