uni-app 中 onHide 和 onUnload 的区别是什么?

推荐答案

在 uni-app 中,onHideonUnload 是两个生命周期函数,分别用于处理页面隐藏和页面卸载时的逻辑。它们的区别主要体现在触发时机和使用场景上:

  • onHide:当页面被隐藏时触发,比如页面跳转、切换到后台等场景。页面仍然存在于内存中,可能会再次显示。
  • onUnload:当页面被卸载时触发,比如页面被关闭或销毁。页面从内存中移除,不会再显示。

本题详细解读

onHide 的触发时机

onHide 生命周期函数在以下情况下会被触发:

  1. 页面跳转到其他页面时(如使用 uni.navigateTo 跳转)。
  2. 应用切换到后台运行时(如用户按下 Home 键)。
  3. 页面被其他页面覆盖时(如弹窗或模态框)。

使用场景

  • 保存页面状态或数据。
  • 暂停页面中的动画或定时器。
  • 释放部分资源以减少内存占用。

onUnload 的触发时机

onUnload 生命周期函数在以下情况下会被触发:

  1. 页面被关闭时(如使用 uni.redirectTouni.navigateBack 返回上一页)。
  2. 页面被销毁时(如使用 uni.reLaunch 重新加载应用)。

使用场景

  • 清理页面中的全局事件监听器。
  • 释放页面占用的所有资源。
  • 取消网络请求或其他异步操作。

示例代码

-- -------------------- ---- -------
------ ------- -
  -------- -
    --------------------
    -- --------
  --
  ---------- -
    --------------------
    -- ---------
  -
-

总结对比

生命周期函数 触发时机 使用场景
onHide 页面隐藏(跳转、后台运行等) 保存状态、暂停动画、释放部分资源
onUnload 页面卸载(关闭、销毁等) 清理全局事件、释放所有资源
纠错
反馈