一、微信生命周期
在学习taro的生命周期之前,先了解一下微信的生命周期。 微信的生命周期可分为应用的生命周期及页面的生命周期
1.1 应用生命周期
参考微信开发文档
- onLaunch 小程序初始化完成时触发,全局只触发一次。
- onShow 小程序启动,或从后台进入前台显示时触发。
- onHide 小程序从前台进入后台时触发。
1.2 页面生命周期
微信开发文档中页面生命周期的图
可以看到,微信的页面生命周期包括:
- onLoad 页面加载时触发。
- onShow 页面载入后触发。
- onReady 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
- onHide 小程序后台运行或跳转到其他页面时,触发onHide方法。
- onUnload 当使用重定向方法wx.redirectTo或关闭当前页返回上一页wx.navigateBack,触发onUnload。 详细的微信生命周期讲解,可以参考这篇博客:微信小程序之生命周期(三)
二、React的生命周期
掘金上介绍React生命周期的帖子有很多,这里就不详细介绍了,放2个链接:
三、Taro中的生命周期
生命周期 | 描述 | 可用位置 |
---|---|---|
onLaunch | 在小程序环境中对应 app 的 onLaunch | 入口组件 |
componentDidShow | 程序/页面,启动或切前台时触发。在小程序环境中对应页面的 onShow。 | 入口组件、页面组件 |
onShow | 页面,启动或切前台时触发。 | 页面组件 |
componentDidHide | 程序/页面,切后台或隐藏时触发;在小程序环境中对应页面的 onHide。 | 入口组件、页面组件 |
onHide | 页面,隐藏或切后台时触发。 | 页面组件 |
onLoad | 在小程序环境中对应页面的 onLoad | 页面组件 |
onReady | 在小程序环境中对应页面的 onReady | 页面组件 |
componentWillMount | 页面将要挂载时触发 | 入口组件、页面组件 |
componentDidMount | 页面挂载时触发 | 入口组件、页面组件 |
shouldComponentUpdate | 页面props/state修改时触发,应返回boolean类型,决定是否触发页面重新render | 入口组件、页面组件 |
componentDidUpdate | 页面重新render后触发 | 入口组件、页面组件 |
componentWillUnMount | 页面将要卸载时触发 | 入口组件、页面组件 |
可以看到,Taro中的生命周期,包含了小程序和React的生命周期。