微信小程序中的App、Page、Component的生命周期函数

有点混乱的官方文档

一、什么是生命周期和生命周期函数?

字面意义上说,生命周期就是指一个对象自身的生老病死;

在程序运行上也可以这么理解,程序也是对象,也有“生老病死”;

程序自身从创建到销毁的过程中,运行到特定的阶段,会触发特定的函数,这些函数,我们就称之为生命周期函数。

二、生命周期函数有什么用?

每个生命周期函数触发时机的不同导致了他们的使用方式和能够起到的作用不大相同;

通常来讲,我们使用生命周期函数是为了页面/组件等在创建到销毁的过程中可以自动执行一些代码来达到我们想要的效果,比如页面数据初始化、清除定时器等等。

App 中的生命周期函数

  1. onLaunch()

    小程序初始化完成时触发,全局只触发一次。参数也可以使用 wx.getLaunchOptionsSync 获取。
    一般在这个生命周期函数中执行 全局数据 的初始化操作。

  2. onShow()

    小程序启动,或从后台进入前台显示时触发,可以触发多次。
    也可以使用 wx.onAppShow 绑定监听。

  3. onHide()

    小程序从前台进入后台时触发,可以触发多次。也可以使用 wx.onAppHide 绑定监听。

Page 中的生命周期函数

  1. onLoad(obj)

    页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。

    一般在这个生命周期函数中执行 当前页面中的data 的初始化操作和判断所需的全局状态(如用户登录状态)等。

    触发时机早于 onShow() 和 onReady()。

  2. onShow()

    页面显示/切入前台时触发,可触发多次,触发时机早于onReady()。

  3. onReady()

    页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
    注意:对界面内容进行设置的 API 如 wx.setNavigationBarTitle,请在onReady之后进行。

  4. onHide()

    页面隐藏/切入后台时触发。 如 wx.navigateTo 或底部 tab 切换到其他页面,小程序切入后台等,可触发多次。

  5. onUnload()

    页面卸载时触发。如 wx.redirectTowx.navigateBack 到其他页面时。

    一般在这个生命周期函数中执行清除定时器、closeSocket等操作。

Component中的生命周期函数

微信小程序的组件中的生命周期函数有以下六种,其中最重要的是 createdattacheddetached
 
微信小程序中的App、Page、Component的生命周期函数_第1张图片

  1. created()

    组件实例刚刚被创建好时, created 生命周期被触发,此时还不能调用 setData
    通常情况下,这个生命周期只应该用于给组件添加一些自定义属性字段。

  2. attached()

    在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。

  3. detached()

    在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。

    (页面节点树即组成页面的所有元素的集合。)

你可能感兴趣的:(微信小程序,微信小程序,小程序)