微信小程序生命周期总结

1.微信小程序生命周期分类:

  1. 应用生命周期
  2. 页面生命周期
  3. 组件生命周期

2.小程序的应用生命周期

onLaunch: 初始化小程序时触发,全局只触发一次
onShow: 小程序初始化完成 或 用户从后台切换到前台时触发
onHide: 用户从前台 切换到 后台时触发
onError: 小程序发生脚本错误时 或 API调用失败时,会触发,并会带上错误的信息

// app.js
App({
    onLaunch: function() {
        // 监听小程序初始化
        console.log("app onLaunch")
	},
	onShow: function() {
        // 监听小程序显示
        console.log("app onShow")
	},
	onHide: function() {
        // 监听小程序隐藏   从前台切换到后台时触发
        console.log("app onHide")
	},
    onError: function(){
        // 错误监听函数
        console.log("app onError")
    },
    globalData:{
        // globalData是全局变量
        // 1. 在app.js中 使用 that.globalData 直接访问
        // 2. 在别的页面则先获取应用实例 const app = getApp(), 然后通过 app.globalData 访问
        userInfo:null
    }
})

3.页面生命周期

// 在pages文件中的js页面
Page({
    data: {},
    onLoad: function (options) {
        // 首次进入页面加载时触发,一个页面只会调用一次
        // 可以在 onLoad 的参数中获取打开当前页面路径中的参数 options
        console.log("page onLoad")
	},
	onShow: function () {
        // 页面首次渲染完成时触发
        // 后台切到前台
        // 重新进入页面时触发
        console.log("page onShow")
    },
    onReady: function () {
        // 页面首次渲染完成时触发,后台切前台不会触发
        console.log("page onReady")
    },
    onHide: function () {
        // 从前台切到后台或进入其他页面触发
        // 进入其他页面不关闭会触发,使用 wx.navigateTo 会触发
        console.log("page onHide")
    },
    onUnload: function () {
        // 页面卸载时触发,使用 wx.redirectTo 会触发,使用 wx.navigateTo 不会触发
        console.log("page onUnload")
    },
    onPullDownRefresh: function () {
        // 监听用户下拉动作(可以用来做下拉刷新功能)
    },
    onReachBottom: function () {
        // 页面上拉触底事件的处理函数(用来做下拉加载更多功能)
    },
    onShareAppMessage: function () {
        // 用户点击右上角转发
    }
    // onPageScroll:		页面滚动触发事件的处理函数
    // onResize:			页面尺寸发生改变时触发。
    // onTabItemTap:		当前是tab页时,点击tab时触发。
})

4.应用及页面生命周期的触发顺序

(第一次打开一个页面时触发顺序如下)

app onLaunch (只触发一次)
app onShow
page onLoad
page onShow
page onReady

(前台切后台)

page onHide
app onHide

(后台切前台)

app onShow
page onShow

(使用 wx.navigateTo:不关闭原来页面,打开一个新的页面)

page onHide ( 原来的页面触发)
page onLoad (新的页面触发)
page onShow (新的页面触发)
page onReady (新的页面触发)

(使用 wx.redirectTo:关闭原来页面,打开一个新的页面)

page onUnload (原来的页面触发)
page onLoad (新的页面触发)
page onShow (新的页面触发)
page onReady (新的页面触发)

5.onLoad,onReady,onShow,onHide 的区别

onLoad: 页面加载时触发,且只发生一次,有些数据实时性要求不高可以onlaod里面触发对应的请求

onReady:页面初次渲染之后触发,一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互

onShow: 定义是页面显示,切入前台触发,可以理解为页面出现一次,他就被调用一次包括你前进后退到这个页面,适合有些实时性的数据,例如订单列表数据

onHide: 切换页面的时候你就会发现该函数被调用,这个页面切换到别的页面就会触发(注意切换不是关闭)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值