vant-list当页面出先滚动条时会重复加载数据的问题解决

vue 3.0 typescript vant.

1.单个界面刷新没问题:排除组件初始化调用问题
2.主界面滚动条在顶部则不会影响,当主界面下拉时,滚动条位置会影响子界面。
3.问题:
    主界面滚动条会影响子界面滚动条
    1.跳转前滚动条归为0,无效
    2.使用Router的scrollBehavior返回top:0,无效。    
    3.跟踪发现,scroll事件注册之前和注册之后包括函数被触发时window.scrollY均为0,说明scroll没有被变化,需要找出何时调用了window的scroll事件。
    4.跟踪check函数,发现是window自触发scroll事件???????
    5.只有跳转界面时才会出现该问题:问题出在路由?????
    6.咨询https://github.com/vuejs/vue-router/issues/3424得知是router的特性,跳转后维持滚动条不变主动触发scroll事件,说是可以通过初始界面START_LOCATION判断是否执行,使用的vant。。
    7.返回在vant提个bug(相对来说),https://github.com/youzan/vant/issues/7786作者反馈需要自己判断路由当前位置,判读个锤子,要判断当前界面是否是START_LOCATION,而且滚动条位置还不能为0.

4.最终处理方案:

           1.vant-list使用v-if 首次加载完成后设为true,达到延迟加载的目的,忽略第一次的scroll调用。

            2. 二次封装vant-list ,首次加载判断是否有tochmove....

 


版权声明:本文为wang1u1u原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。