微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

uniapp 实现类似keep-alive效果从列表页进入详情页,返回列表页滚动条位置不变

使用uniapp小程序已经大半年了。uniapp 相比原生的小程序省事儿很多,而且能兼容多平台H5,app,微信小程序,支付宝小程序等。

但辩证的看待问题,有利就有弊。用uniapp 开发离不开看文档,当你用到一个个vue特性的需要确认在uniapp中支不支持

就比如今天的标题如果说在vue中使用keep-alive就能轻松解决,而这个属性uniapp不支持。所以我使用scrollTop来实现类似效果

 

 

 

 

 

 uniapp页面生命周期函数onPageScroll可以拿到滚动距离的值。

1,将top值 存到data中。

onPageScroll : function(e) { 
    this.scrollTop = e.scrollTop; 
},

2,在点击跳转详情的方法中,将top值存缓存。

toDetail(id) {
   uni.setStorage({
    key:"listTop",
    data:this.scrollTop
   })
   ...
}

3,在onShow中使用uni.pageScrollTo 将缓存的top值渲染到页面上。

 

 

 

onShow() {
//滚动条
  uni.getStorage({
     key:"listTop",
     success: (res) => {
      if(!isNaN(res.data)){
      var lefts = uni.pageScrollTo({
        scrollTop:res.data,
        duration:0
      })
      }
     }
  })
},

4,页面关闭时将top值清空

onUnload() {
    uni.setStorage({
    key:"listTop",
    data:0
    })
}

好了,打完收工,希望可以帮到你。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐