UNI-APP 生命周期执行顺序

生命周期

生命周期文档

应用生命周期

AppApp.vue中定义

// 应用初始化完成触发,全局只触发一次,可做登录判断...
onLaunch
// 应用启动的时候,或者从后台进入前台就会触发
onShow
// 应用从前台进入后台就会触发
onHide

页面生命周期

page 在页面中都可以定义

// 监听页面加载,在开始加载的时候触发,元素还未开始渲染 -- 页面只执行一次  tab页面不加载
onLoad
// 监听页面显示,每次页面出现的时候,就会触发这个钩子。
onShow
// 监听页面渲染完成, 如果页面渲染速度快(元素太少),会在页面翻页动画完成前就触发了 -- 页面只执行一次
onReady
// 监听页面隐藏,每次页面隐藏的时候,就会触发这个钩子。 页面跳转会触发
onHide
// 监听页面卸载 重定向跳转页面会触发
onUnload

组件主要用到的生命周期

component 组件中使用

// 在实例初始化之后被调用
beforeCreate
// 在实例创建完成后被立即调用--调函数
created
// 在挂载开始之前被调用
beforeMount
// 挂载到实例上去之后调用
mounted
// Vue 实例销毁后调用
destroyed

生命周期执行顺序

// 进入应用
App Launch
App Show
page onLoad
page onShow
component beforeCreate
component created
component mounted
page onReady

// 应用后台
App Hide
page onHide

// 应用关闭
page onUnload
component destory

// 后台重新进入
App Show
page onLoad
page onShow
### uni-app Tab 切换时触发的组件生命周期方法 在uni-app框架中,Tab切换会涉及到页面以及其内部组件的重新渲染和状态管理。具体来说,在Tab切换过程中,页面及其所含有的组件将会经历一系列特定的生命周期钩子函数。 对于页面级别的生命周期而言,当用户通过底部导航栏点击不同的Tab项来实现页面间的转换时,目标页面可能会执行`onLoad`、`onShow`等方法[^2];而当前离开的页面则可能依次调用`onHide`等相关回调[^1]。需要注意的是,如果只是在同一Tab内的不同页面间跳转,则不会触发应用层面的整体隐藏(`onHide`)与显示(`onShow`)事件,而是仅限于单个页面范围内的展示/隐藏逻辑处理。 至于更细粒度的组件级别生命周期方面: - 当首次加载某个带有Tabs布局结构的页面并初次访问其中某一项标签页对应的视图区域时,该区域内定义好的Vue组件将按照标准顺序依次激活它们各自的前置创建(beforeCreate)、已创建(created)、预挂载(beforeMount)直至最终完成挂载(mounted)等一系列初期化阶段的方法; - 如果是在已经存在缓存的情况下再次回到同一个Tab位置的话(即非第一次进入),那么此时并不会重复走一遍完整的初始化流程,而是直接从`activated`这个特殊的生命周期钩子切入,表示此组件由不可见变为可见的状态恢复过程已经开始发生[^4];相反地,一旦因切换至其他Tab而导致本组件暂时失去焦点变得不可见的时候,则会先经过`deactivated`这一步骤作为过渡,意味着即将进入到暂停活动模式下等待下次唤醒的机会到来。 ```javascript export default { data() { return {}; }, activated() { // 只有keep-alive包裹下的组件才会触发 console.log('Component is reactivated'); }, deactivated() { // 同样适用于keep-alive场景中的组件 console.log('Component has been deactivated'); } } ``` 为了确保良好的用户体验及性能优化考虑,开发者可以利用上述提到的各种时机来进行必要的资源分配调整或是界面刷新操作等工作。例如可以在`activated`里拉取最新的数据列表用于即时呈现给用户查看;而在`deactivated`处释放不再使用的图片对象以节省内存空间等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值