uni-app的onShow 事件意外触发

onShow 事件在uni-app(基于Vue.js的跨平台应用框架)中会在以下几种情况下被触发:

  1. 页面初次加载时:当页面第一次加载时,onShow 会被触发。

  2. 页面从后台切换到前台时:如果页面已经被创建并且处于后台状态(例如,用户浏览了其他页面或应用),当用户再次回到此页面时,onShow 将会被触发。

  3. 页面重新进入时:当用户通过导航或其他方式重新进入页面时,即使页面已经存在,onShow 也会被触发。

  4. 使用特定API时:如使用 wx.previewImage 预览图片后返回,或从其他小程序返回等情况,也会触发 onShow

在uni-app中,onShow 的触发可能与微信小程序的生命周期管理有关。在某些情况下,如从一个子页面返回到带有 tabBar 的页面时,可能会出现 onShow 被触发多次的情况,这通常是由于微信小程序的原生实现机制导致的。

对于你提到的在离开页面后返回时 onShow 再次触发的问题,这可能是因为页面并没有完全销毁,而是被保留在内存中。当你返回到该页面时,框架认为这是一个页面从后台到前台的切换,因此会触发 onShow

此外,根据之前的信息,某些情况下在iOS设备上,尤其是在从一个子页面返回到 tabBar 页面时,onShow 可能会被触发两次或多次。这是因为微信小程序在iOS上的实现中,可能对页面栈的管理与Android有所不同,导致了这种现象。

为了更准确地定位问题,你可以尝试在 onShow 函数中打印一些日志,查看其被触发的具体条件和上下文,从而更好地理解为何它会被多次触发,并采取相应的措施来避免不必要的操作

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值