Uni-app 生命周期全解析

目录

一、应用生命周期

二、页面生命周期

三、组件生命周期

四、应用场景总结

五、面试回答示例


在使用 uni-app 进行开发时,生命周期是面试和实际开发中经常遇到的问题。理解生命周期有助于我们更好地掌控应用运行的流程,从而实现更优雅的代码设计。本文将从 应用生命周期、页面生命周期、组件生命周期 三个方面来详细讲解。


一、应用生命周期

应用生命周期是指整个 App 级别的生命周期钩子,主要在 App.vue 中使用。

生命周期函数触发时机常见用途
onLaunch应用初始化时触发(只会触发一次)初始化数据、登录态校验、获取设备信息
onShow应用启动或从后台进入前台时触发场景还原、统计上报、刷新数据
onHide应用从前台进入后台时触发数据持久化、本地存储
onError应用报错时触发错误日志收集、上报监控平台

示例代码:

// App.vue
export default {
  onLaunch() {
    console.log('App 启动了');
  },
  onShow() {
    console.log('App 显示了');
  },
  onHide() {
    console.log('App 隐藏了');
  },
  onError(err) {
    console.error('程序出错:', err);
  }
}

二、页面生命周期

页面生命周期是指某一个页面的运行过程中的钩子函数,主要在 pages 下的 .vue 文件中使用。

生命周期函数触发时机常见用途
onLoad页面加载时触发,参数为上个页面传递的数据接收参数、初始化数据请求
onShow页面显示时触发刷新页面数据、更新 UI
onReady页面初次渲染完成时触发(只触发一次)操作 DOM、初始化第三方库
onHide页面隐藏时触发暂停动画、停止视频播放
onUnload页面卸载时触发清理定时器、释放资源
onPullDownRefresh用户下拉动作时触发刷新页面数据
onReachBottom页面滚动到底部时触发上拉加载更多数据
onResize屏幕旋转或窗口大小变化时触发适配不同屏幕布局
onTabItemTap点击 Tab 栏时触发(仅 Tab 页有效)切换 Tab 逻辑

示例代码:

// pages/index/index.vue
export default {
  onLoad(options) {
    console.log('页面加载', options);
  },
  onShow() {
    console.log('页面显示');
  },
  onReady() {
    console.log('页面初次渲染完成');
  },
  onHide() {
    console.log('页面隐藏');
  },
  onUnload() {
    console.log('页面卸载');
  },
  onPullDownRefresh() {
    console.log('用户下拉刷新');
    // 停止刷新
    uni.stopPullDownRefresh();
  },
  onReachBottom() {
    console.log('触底加载更多');
  }
}

三、组件生命周期

在 uni-app 中,组件的生命周期与 Vue 基本一致。常见的有:

生命周期函数触发时机
beforeCreate组件实例刚创建,还未初始化 data
created组件实例创建完成,可访问 data 和 methods
beforeMount组件挂载前
mounted组件挂载完成,DOM 已可操作
beforeUpdate数据更新前
updated数据更新后
beforeDestroy组件销毁前
destroyed组件销毁完成

示例代码:

export default {
  data() {
    return {
      msg: 'Hello Uni-app'
    }
  },
  created() {
    console.log('组件已创建');
  },
  mounted() {
    console.log('组件挂载完成');
  },
  beforeDestroy() {
    console.log('组件销毁前');
  },
  destroyed() {
    console.log('组件已销毁');
  }
}

四、应用场景总结

  • onLaunch:做登录、全局配置初始化

  • onShow / onHide:常用于埋点统计、应用前后台切换逻辑

  • onLoad:页面参数接收、数据请求

  • onPullDownRefresh / onReachBottom:常用于分页加载、数据刷新

  • 组件生命周期:常用于 DOM 操作、第三方插件初始化、清理资源


五、面试回答示例

如果面试官问到 uni-app 生命周期,可以这样回答:

 应用生命周期:onLaunch(初始化)、onShow(前台显示)、onHide(后台)、onError(错误处理)。
 页面生命周期:onLoad(参数获取)、onShow(页面展示)、onReady(首次渲染)、onHide、onUnload,还有下拉刷新、上拉加载、屏幕旋转等。
 组件生命周期:基本与 Vue 保持一致,如 created、mounted、updated、destroyed。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值