MINA框架
运行机制
启动
- 冷启动:用户第一次打开,或打开后被微信主动销毁后,再次启动,小程序需重新加载启动。
- 热启动:已打开过该小程序,且在一定时间内再次打开,小程序从后台切换到前台。
微信主动销毁情况
- 运行切换到后台5分钟后
- 运行时5秒内出现两次警告
加载机制
生命周期
程序生命周期
- onLaunch:启动时初始化
- onShow:从后台唤醒,切换到前台
- onHide:切换到后台
- onError:脚本错误或API调用失败
- globalData:应用全局数据
页面生命周期
- onLoad:页面初次加载,Page构造器参数定义的onLoad方法被调用,页面未销毁之前只调用一次
- onShow:1. onLoad回调参数 2.从其他页面回到当前页面
- onReady:onShow方法之后被调用,页面未销毁之前只调用一次,触发后逻辑层和视图层可交互
- onHide:在当前页打开新的页面
- onUnload:关闭当前页
- data:当前页面数据
Page实例
路由
页面栈
框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:
路由方式 | 页面栈表现 |
---|---|
初始化 | 新页面入栈 |
打开新页面 | 新页面入栈 |
页面重定向 | 当前页面出栈,新页面入栈 |
页面返回 | 页面不断出栈,直到目标返回页,新页面入栈 |
Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 |
重加载 | 页面全部出栈,只留下新的页面 |
路由方式
对于路由的触发方式以及页面生命周期函数如下:
路由方式 | 触发时机 | 路由前页面 | 路由后页面 |
---|---|---|---|
初始化 | 小程序打开的第一个页面 | onLoad, onShow | |
打开新页面 | 调用 API wx.navigateTo 或使用组件 <navigator open-type="navigateTo"/>
|
onHide | onLoad, onShow |
页面重定向 | 调用 API wx.redirectTo 或使用组件 <navigator open-type="redirectTo"/>
|
onUnload | onLoad, onShow |
页面返回 | 调用 API wx.navigateBack 或使用组件<navigator open-type="navigateBack"> 或用户按左上角返回按钮 |
onUnload | onShow |
Tab 切换 | 调用 API wx.switchTab 或使用组件 <navigator open-type="switchTab"/> 或用户切换 Tab |
各种情况请参考下表 | |
重启动 | 调用 API wx.reLaunch 或使用组件 <navigator open-type="reLaunch"/>
|
onUnload | onLoad, onShow |