微信小程序开发 页面路由
页面路由
在小程序中所有页面的路由全部由框架进行管理。
页面栈
框架以栈的形式维护了当前的所有页面。当发生路由切换的时候,页面栈的表现如下:
路由方式页面栈表现初始化新页面入栈打开新页面新页面入栈页面重定向当前页面出栈,新页面入栈页面返回页面不断出栈,直到目标返回页,新页面入栈Tab 切换页面全部出栈,只留下新的 Tab 页面重加载页面全部出栈,只留下新的页面getCurrentPages()
getCurrentPages()
函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
Tip:不要尝试修改页面栈,会导致路由以及页面状态错误。
路由方式
对于路由的触发方式以及页面生命周期函数如下:
路由方式触发时机路由前页面路由后页面初始化小程序打开的第一个页面 onLoad, onSHow打开新页面调用 APIwx.navigateTo
或使用组件 <navigator open-type="navigateTo"/>
onHideonLoad, onShow页面重定向调用 API wx.redirectTo
或使用组件 <navigator open-type="redirectTo"/>
onUnloadonLoad, onShow页面返回调用 API wx.navigateBack
或使用组件<navigator open-type="navigateBack">
或用户按左上角返回按钮onUnloadonShowTab 切换调用 API wx.switchTab
或使用组件 <navigator open-type="switchTab"/>
或用户切换 Tab 各种情况请参考下表重启动调用 API wx.reLaunch
或使用组件 <navigator open-type="reLaunch"/>
onUnloadonLoad, onShowTab 切换对应的生命周期(以 A、B 页面为 Tabbar 页面,C 是从 A 页面打开的页面,D 页面是从 C 页面打开的页面为例):
当前页面路由后页面触发的生命周期(按顺序)AANothing happendABA.onHide(), B.onLoad(), B.onShow()AB(再次打开)A.onHide(), B.onShow()CAC.onUnload(), A.onShow()CBC.onUnload(), B.onLoad(), B.onShow()DBD.onUnload(), C.onUnload(), B.onLoad(), B.onShow()D(从转发进入)AD.onUnload(), A.onLoad(), A.onShow()D(从转发进入)BD.onUnload(), B.onLoad(), B.onShow()Tips:
navigateTo
,redirectTo
只能打开非 tabBar 页面。switchTab
只能打开 tabBar 页面。reLaunch
可以打开任意页面。- 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
- 调用页面路由带的参数可以在目标页面的
onLoad
中获取。
报名学习加微信/QQ 1602007,关注《东方联盟网》微信公众号
>更多相关文章
- 01-30微信小程序设计规范(1) 友好礼貌
- 01-30微信小程序设计规范(3) 便捷优雅
- 01-30微信小程序设计规范(2) 清晰明确
- 01-30微信小程序设计规范(5) 视觉规范
- 01-30微信小程序设计规范(4) 统一稳定
- 01-18微信小程序工具 beta版本下载
- 01-18微信小程序工具细节点
- 01-18微信小程序工具 下载地址
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 04-08岚图汽车:一季度海外订单同比增长205%
- 04-08小米汽车回应大家关心的问题:事故车起火并
- 03-29黑客组织攻击纽约大学官网,泄露 300万学生
- 03-29阿里妈妈广告自研AI模型LMA升级至万亿级参数
- 03-29筑牢食品安全防线 构建放心消费环境
24小时热门资讯
热门推荐
最新资讯
操作系统
黑客防御