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
    })
}

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

 

相关文章

咱们国内现在手机分为两类,Android手机与苹果手机,现在用的...
前言 上一篇做了php的微信登录,所以也总结一下Java的微信授...
前言 上一篇文章写到如何上架IOS应用到Appstore,其中漏掉了...
文件-新建-1.项目 ┌─uniCloud 云空间目录,阿里云为uniClo...
Flexbox #Flex 容器 Flex 是 Flexible Box 的缩写,意为&...
globalStyle 用于设置应用的状态栏、导航条、标题、窗口背景...