当前位置: 首页 > article >正文

uni-app 生命周期

前言

uni-app 的生命周期主要分为:应用生命周期、页面生命周期、组件生命周期三种


一、应用生命周期(App.vue中声明)

注意:仅在App.vue中有效,在其他页面监听无效

触发场景:整个应用的初始化、前后台切换等全局行为

常用钩子:

  • onLaunch
    应用初始化完成时触发(仅触发一次)
    典型用途:全局配置(如登录状态检测、系统信息获取)

  • onShow
    应用启动或从后台进入前台时触发
    典型用途:恢复定时器、更新全局数据

  • onHide
    应用从前台进入后台时触发
    典型用途:暂停动画、保存临时数据

  • onError
    全局错误捕获(如脚本错误、API调用失败)

  • onPageNotFound
    页面路径不存在时触发(用于自定义404跳转)

二、页面生命周期(pages目录下的.vue文件) 

页面生命周期函数主要在 pages 目录下的 .vue 文件中使用

这些函数涵盖了页面从创建销毁的各个阶段

页面文件同时拥有两种生命周期

  1. 页面特有生命周期​(如onLoad、onShow)
  2. Vue组件标准生命周期​(如created、mounted)

常用钩子 :

1、onLoad

  • 触发时机:页面第一次加载时触发
  • 场景
    • 接收页面传递过来的参数
    • 发起接口请求,获取数据
export default {
    onLoad(options) {
        console.log('页面加载时接收到的参数:', options);
        this.fetchData();
    },
    methods: {
        fetchData() {
            // 请求接口数据
        }
    }
};

2、onShow

  • 触发时机:页面每次显示时触发,包括从其他页面返回当前页面
  • 场景
    • 刷新页面数据
    • 检查登录状态等
export default {
    onShow() {
        console.log('页面显示时执行');
        this.checkLoginStatus();
    },
    methods: {
        checkLoginStatus() {
            // 检查登录状态
        }
    }
};

3、onReady

  • 触发时机:页面初次渲染完成时触发,此时页面已经准备好可以与用户进行交互
  • 用途
    • 进行DOM操作。
    • 初始化页面中的某些组件或插件。
钩子函数触发时机典型场景
onLoad页面首次加载时触发(仅一次)接收参数(如options.id)、初始化页面数据、发起首次接口请求
onShow页面每次显示时触发(包括tab切换/返回)更新动态数据(如刷新列表)、启动页面动画
onReady页面初次渲染完成(可能早于进场动画结束)操作DOM元素(需注意异步渲染问题,可用$nextTick
onUnload页面卸载(如redirectTo或关闭页面)清除定时器、取消未完成的网络请求
onPullDownRefresh用户下拉页面(需在json中开启enablePullDownRefresh实现下拉刷新功能

三、组件生命周期(components目录下的.vue文件) 

注意:无页面特有钩子,组件不包含onLoad、onShow等页面级生命周期

遵循Vue标准生命周期:

 常用钩子:

钩子函数触发时机
created实例创建完成(可访问data但未挂载DOM)
mountedDOM挂载完成(可操作DOM元素)
beforeDestroy实例销毁前(适合清除全局事件监听)

四、生命周期执行顺序 

应用启动时:
App.onLaunch → App.onShow → Page.onLoad → Page.created → Page.onShow → Page.mounted → Page.onReady

页面跳转时(A→B):
A.onHide → B.onLoad → B.created → B.onShow → B.mounted → B.onReady


http://www.kler.cn/a/589132.html

相关文章:

  • 数学建模 第二节
  • 深度学习模型压缩:非结构化剪枝与结构化剪枝的定义与对比
  • 基于C#的以太网通讯实现:TcpClient异步通讯详解
  • 政策助力,3C 数码行业数字化起航
  • 考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表
  • 运维工具推荐 -- 宝塔面板:一键部署服务器
  • nexus的使用
  • Linux搭建conda虚拟环境流程
  • never_give_up
  • 聊一下CSS层叠
  • Centos离线安装perl
  • redis zset基本介绍以及底层实现
  • 【网络】Caddy 服务器如何提供 TLS(Transport Layer Security)(传输层安全协议)
  • 短视频下载去水印,用什么工具好?
  • 使用 Chrome Flags 设置(适用于 HTTP 站点开发)
  • Spring WebSocket 像写http接口一样处理WebSocket消息(Stomp协议)
  • iOS底层原理系列02-深入了解Objective-C
  • LInux基础--apache部署网站
  • rust 的Clone
  • 基于SpringBoot的“考研互助平台”的设计与实现(源码+数据库+文档+PPT)