推荐答案
在 uni-app 中,onHide
和 onUnload
是两个生命周期函数,分别用于处理页面隐藏和页面卸载时的逻辑。它们的区别主要体现在触发时机和使用场景上:
- onHide:当页面被隐藏时触发,比如页面跳转、切换到后台等场景。页面仍然存在于内存中,可能会再次显示。
- onUnload:当页面被卸载时触发,比如页面被关闭或销毁。页面从内存中移除,不会再显示。
本题详细解读
onHide 的触发时机
onHide
生命周期函数在以下情况下会被触发:
- 页面跳转到其他页面时(如使用
uni.navigateTo
跳转)。 - 应用切换到后台运行时(如用户按下 Home 键)。
- 页面被其他页面覆盖时(如弹窗或模态框)。
使用场景:
- 保存页面状态或数据。
- 暂停页面中的动画或定时器。
- 释放部分资源以减少内存占用。
onUnload 的触发时机
onUnload
生命周期函数在以下情况下会被触发:
- 页面被关闭时(如使用
uni.redirectTo
或uni.navigateBack
返回上一页)。 - 页面被销毁时(如使用
uni.reLaunch
重新加载应用)。
使用场景:
- 清理页面中的全局事件监听器。
- 释放页面占用的所有资源。
- 取消网络请求或其他异步操作。
示例代码
-- -------------------- ---- ------- ------ ------- - -------- - -------------------- -- -------- -- ---------- - -------------------- -- --------- - -
总结对比
生命周期函数 | 触发时机 | 使用场景 |
---|---|---|
onHide |
页面隐藏(跳转、后台运行等) | 保存状态、暂停动画、释放部分资源 |
onUnload |
页面卸载(关闭、销毁等) | 清理全局事件、释放所有资源 |