Vue项目遇到的问题即解决办法

Vue项目版本信息: Vue2.5.2,better-scroll2.3.1

  1. 问题描述】在vue项目中使用better-scroll实现滚动效果,实现城市列表的滚动效果,在PC端可以在滚动时对城市列表中的某一项进行选择,而在移动端选择失效。
    解决办法】原因在于:better-scroll在移动端默认禁用touch事件。
 this.scroll = new Bscroll(this.$refs.wrapper, {click: true, disableMouse: false, disableTouch: false})    

在这里插入图片描述

  1. 问题描述】通过JSON异步获取数据,PC端有时候可以进行城市列表的滑动,也可以根据右侧字符列表进行相应的联动,但是有的时候却不可以,然而当更改当前Chrome手机模拟的型号时又可以。移动端有时候联动功能正常,也有些时候页面根本无法滑动。
    解决办法】在mounted()中使用了better-scroll,当页面进行挂载时,mounted()不能保证子组件也一起被挂载,由于子组件没有被挂载,因此子组件也就获取不到better-scroll有效的条件,因而页面不能正常滚动(大多数情况)。
mounted () {
     this.scroll = new Bscroll(this.$refs.wrapper, {click: true, disableMouse: false, disableTouch: false})                 
  }

mounted()可参考
在这里插入图片描述
按照官方的推荐,我们希望等到整个视图渲染完毕再调用better-scroll。也可以按照【参考】去更改代码,在watch()中对better-scroll进行刷新,当检测到数据发生变化refresh()就会在DOM更新之前调用。从而使得better-scroll滑动生效。

watch(){
	cities () {
       this.$nextTick(() => {
        this.scroll.refresh()
      })
    }
 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值