city页面搜索城市切换之后再次点击city页面list组件的better-scroll就失效了应该怎么解决

来源:10-3 Vue项目的联调测试上线 - 真机测试

慕仰5016471

2020-10-27

视频中用的是1.8.1版本的 不用加updated () {this.scroll.refresh()} 在电脑上是没问题的 在手机上就不能滑动了 图片描述
图片描述

写回答

2回答

花花公子2016

2021-04-09

导致问题的原因是keep-alive的缓存,我直接把keep-alive干掉了,用这个缓存机制增加了前端代码的复杂性,迭代不好维护,牺牲一点性能来换取代码的稳定。

0
0

Samrtiboy

2020-10-27

同学你好,我的解决方法是在首页中也绑定滚动事件就可以完美解决无法滚动的问题了,PC端,移动端均可以滚动,可以参考一下,代码如下:

布局按照better-scroll的要求来

<div ref="wrapper" class="list">
    <div>
      <HomeHeader></HomeHeader>
      <HomeSwiper :swiperList="swiperList"></HomeSwiper>
      <HomeIcons :iconList="iconList"></HomeIcons>
      <HomeRecommend :recommendList="recommendList"></HomeRecommend>
      <HomeWeekend :weekendList="weekendList"></HomeWeekend>
    </div>
  </div>

然后按照better-scroll的要求来写一下样式:

.list
  overflow hidden
  position absolute
  top 0
  left 0
  right 0
  bottom 0

最后在mounted生命周期函数中绑定滚动事件:

mounted () {
    this.lastCity = this.city
    this.scroll = new BetterScroll(this.$refs.wrapper, {
      click: true,
    })
    this.getHomeInfo()
  },

还要不能有下面这段代码否则无法正常滚动

updated () {
    this.scroll.refresh()
}

我之所以想到这样做,是因为我发现每次在首页出现滚动条的情况下再去城市列表页就无法正常滚动了,因此我就我想尝试一下给首页也绑定滚动事件结果发现解决了无法滚动的问题,当然我的做法不一定合理,欢迎同学一起讨论,我感觉better-scroll在使用上还是要谨慎使用。

0
2
春夏js
首页加了list滚动代码,移动端(iPhone11) 首页还是滑不了
2020-11-24
共2条回复

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程