而且由于入口文件继承自 Component 组件基类,它同样拥有组件生命周期,但因为入口文件的特殊性,他的生命周期并不完整,具体如下

componentWillMount()

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 app 的 onLaunch

监听程序初始化,初始化完成时触发(全局只触发一次)
在此生命周期中通过 this.$router.params,可以访问到程序初始化参数
参数格式如下

属性 类型 说明 微信小程序 百度小程序 字节跳动小程序 支付宝小程序 H5 RN
path string 启动小程序的路径 ✔️ ✔️ ✔️ ✔️
scene number 启动小程序的场景值 ✔️ ✔️ ✔️
query Object 启动小程序的 query 参数 ✔️ ✔️ ✔️ ✔️
shareTicket string shareTicket,详见获取更多转发信息 ✔️ ✔️ ✔️
referrerInfo Object 来源信息。从另一个小程序、公众号或 App 进入小程序时返回。否则返回 {} ✔️ ✔️ ✔️ ✔️

其中,场景值 scene,在微信小程序和百度小程序中存在区别,请分别参考 微信小程序文档百度小程序文档
来源信息 referrerInfo 的数据结构如下

属性 类型 说明 微信小程序 百度小程序 字节跳动小程序 支付宝小程序
appId string 来源小程序,或者公众号(微信中) ✔️ ✔️ ✔️ ✔️
extraData Object 来源小程序传过来的数据,微信和百度小程序在scene=1037或1038时支持 ✔️ ✔️ ✔️ ✔️
sourceServiceId string 来源插件,当处于插件运行模式时可见 ✔️(基础库版本 1.11.0)

componentDidMount()

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 app 的 onLaunch,在 componentWillMount 后执行

监听程序初始化,初始化完成时触发(全局只触发一次)
在此生命周期中也可以通过 this.$router.params,访问到程序初始化参数,与 componentWillMount 中一致

componentDidShow()

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 onShow,在 H5/RN 中同步实现

程序启动,或从后台进入前台显示时触发,微信小程序中也可以使用 Taro.onAppShow 绑定监听
在此生命周期中通过 this.$router.params,可以访问到程序初始化参数
参数与 componentWillMount 中获取的基本一致,但百度小程序中补充两个参数如下

属性 类型 说明 最低版本
entryType string 展现的来源标识,取值为 user/ schema /sys :
user:表示通过home前后
切换或解锁屏幕等方式调起;
schema:表示通过协议调起;
sys:其它
2.10.7
appURL string 展现时的调起协议,仅当entryType值为 schema 时存在 2.10.7

componentDidHide()

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 onHide,在 H5/RN 中同步实现

程序从前台进入后台时触发,微信小程序中也可以使用 Taro.onAppHide 绑定监听

componentDidCatchError(String error)

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 onError,H5/RN 中尚未实现

程序发生脚本错误或 API 调用报错时触发,微信小程序中也可以使用 Taro.onError 绑定监听

componentDidNotFound(Object)

在微信/字节跳动小程序中这一生命周期方法对应 onPageNotFound,其他端尚未实现 微信小程序中,基础库 1.9.90 开始支持

程序要打开的页面不存在时触发,微信小程序中也可以使用 Taro.onPageNotFound 绑定监听
参数如下

属性 类型 说明
path string 不存在页面的路径
query Object 打开不存在页面的 query 参数
isEntryPage boolean 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面)