微信小程序——生命周期详解(代码解读)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:Java Fans的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

💞当前专栏:微信小程序学习分享

✨特色专栏:国学周更-心性养成之路

🥭本文内容:微信小程序------使用 Vant 组件实现 Popup 弹出层(各位置弹出详细代码分享)

文章目录

一、生命周期分类

  小程序中的生命周期函数可以分为两类:应用生命周期和页面生命周期。

1、应用生命周期

  定义: 小程序的生命周期函数是在app.js中调用,通过App(Object)函数用来注册一个小程序,指定其小程序的生命周期回调。

  • onLaunch: 小程序初始化时触发,只执行一次。可以做一些全局的初始化操作。
  • onShow: 小程序启动或从后台进入前台时触发。可以在此进行页面状态的更新或数据的初始化。
  • onHide: 小程序从前台进入后台时触发。可以在此做一些资源释放或数据保存的操作。
  • onError: 小程序发生脚本错误或 API 调用失败时触发。

  在应用生命周期中,onLaunch是小程序初始化的入口函数,而onShow和onHide则是用来处理小程序的前后台切换。onError用于处理小程序中的错误,比如脚本错误或 API 调用失败等。

2、页面生命周期

  • onLoad: 页面加载时触发,只执行一次。可以在此进行页面初始化的操作,比如发送网络请求获取数据。
  • onShow: 页面被显示时触发,可以用来进行页面状态更新。
  • onReady: 页面初次渲染完成时触发,表示页面已经准备好,可以和视图层进行交互。
  • onHide: 页面被隐藏时触发,可以做一些资源释放或数据保存的操作。
  • onUnload: 页面被关闭时触发,可以做一些清理工作。

  在页面生命周期中,onLoad和onReady是页面的初始化阶段,onShow和onHide用于在页面显示和隐藏时进行响应,而onUnload则是在页面被完全关闭时触发。

二、生命周期案例详解

1、应用生命周期函数案例

  • onLaunch:
    该函数在小程序初始化时触发,只执行一次。
    可以在此进行全局的初始化操作,比如获取用户信息、登录等。

示例代码:

javascript 复制代码
App({
  onLaunch: function() {
    // 小程序初始化时执行的操作
    console.log("小程序初始化");

    // 获取用户信息
    wx.getUserInfo({
      success: function(res) {
        console.log(res.userInfo);
      }
    });
  }
})
  • onShow:
    该函数在小程序启动或从后台进入前台时触发。
    可以在此进行页面状态的更新或数据的初始化。

示例代码:

javascript 复制代码
App({
  onShow: function() {
    // 小程序启动或从后台进入前台时执行的操作
    console.log("小程序显示");

    // 更新用户状态
    this.globalData.isLogin = true;
  }
})
  • onHide:
    该函数在小程序从前台进入后台时触发。
    可以在此做一些资源释放或数据保存的操作。

示例代码:

javascript 复制代码
App({
  onHide: function() {
    // 小程序从前台进入后台时执行的操作
    console.log("小程序隐藏");

    // 保存数据
    wx.setStorageSync('data', this.globalData.data);
  }
})
  • onError:
    该函数在小程序发生脚本错误或 API 调用失败时触发。
    可以在此做错误处理或日志记录。

示例代码:

javascript 复制代码
App({
  onError: function(err) {
    // 小程序发生错误时执行的操作
    console.log("小程序出错", err);
    // 记录日志
    wx.reportAnalytics('error', {
      message: err.message,
      stack: err.stack
    });
  }
})

2、页面生命周期函数案例

  • onLoad:
    该函数在页面加载时触发,只执行一次。
    可以在此进行页面初始化的操作,比如发送网络请求获取数据。

示例代码:

javascript 复制代码
Page({
  onLoad: function(options) {
    // 页面加载时执行的操作
    console.log("页面加载");

    // 发送网络请求
    wx.request({
      url: 'https://api.example.com/data',
      success: function(res) {
        console.log(res.data);
      }
    });
  }
})
  • onShow:
    该函数在页面被显示时触发。
    可以用来进行页面状态更新。

示例代码:

javascript 复制代码
插入代码
复制代码
Page({
  onShow: function() {
    // 页面显示时执行的操作
    console.log("页面显示");

    // 更新页面状态
    this.setData({
      isReady: true
    });
  }
})
  • onReady:
    该函数在页面初次渲染完成时触发。
    表示页面已经准备好,可以和视图层进行交互。

示例代码:

javascript 复制代码
Page({
  onReady: function() {
    // 页面初次渲染完成时执行的操作
    console.log("页面渲染完成");

    // 执行交互操作
    wx.showToast({
      title: "页面已加载"
    });
  }
})
  • onHide:
    该函数在页面被隐藏时触发。
    可以做一些资源释放或数据保存的操作。

示例代码:

javascript 复制代码
插入代码
复制代码
Page({
  onHide: function() {
    // 页面隐藏时执行的操作
    console.log("页面隐藏");

    // 释放资源
    this.data.list = null;
  }
})
  • onUnload:
    该函数在页面被关闭时触发。
    可以做一些清理工作。

示例代码:

javascript 复制代码
插入代码
复制代码
Page({
  onUnload: function() {
    // 页面被关闭时执行的操作
    console.log("页面关闭");

    // 清理工作
    wx.removeStorageSync('data');
  }
})

  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更---心性养成之路》,学习技术的同时,我们也注重了心性的养成。

相关推荐
weixin_4222013013 小时前
如何解决小程序图标点击热区小,落点不准问题?
前端·小程序·样式·点击热区·扩大
河北清兮网络科技15 小时前
直播APP商用开发深度解析:为什么模板系统无法支撑规模化直播平台
运维·网络·人工智能·小程序·短剧app
今年下半年17 小时前
【微信小程序】uni-app + Vue3 + Vite 的小程序项目实现「进入指定范围才能打卡」的考勤功能
微信小程序·uni-app·定位·考勤
Geek_Vison17 小时前
政务APP新增鸿蒙客户端,如何复用已有的业务单元?
小程序·harmonyos·mpaas·政务·小程序容器
沐子a~18 小时前
小程序实战:萌宠案例
小程序
火眼金睛记单词18 小时前
零基础成人重拾英语:第一个月的30天行动地图
前端·经验分享·学习·小程序
xinraynet18 小时前
沈阳企业小程序开发选型:五个可核验维度,附设备数据采集与私域商城的技术实现要点
大数据·科技·ai·微信小程序·小程序
小码哥0681 天前
Java医院陪诊系统陪护系统陪诊小程序,三端齐全可定制
大数据·小程序·陪诊陪护·陪诊小程序·陪护系统·陪诊系统·陪护小程序
连涨- AI脑波英语1 天前
机构小程序对接词汇课程,测试账号怎样与正式学生账号隔离?
小程序·接口安全·脑机单词速记
liangshanbo12152 天前
前端面试题:微信小程序怎么优化性能?
前端·微信小程序·notepad++