微信小程序开发手册:逻辑层页面路由
页面路由
在小程序中,管理了框架所有页面的路由。
页面堆栈
框架以堆栈的形式维护当前所有页面。当路由切换发生时,页面堆栈的行为如下:
路由方法 | 页面堆栈的行为 |
---|---|
初始化 | 新页面推入堆栈新页面打开的新页面推入堆栈 |
页面重定向 | 当前页面从堆栈中压入,新页面压入堆栈。 |
页面返回。 | 页面继续退出堆栈,直到目标返回该页面,并将新页面压入堆栈。 |
选项卡开关 | 所有页面均从堆栈中拉出。 ,只留下新标签页 |
重新加载 | 所有页面都从堆栈中拉出,只保留新页面 |
getCurrentPages()
提示:请勿尝试更改页面堆栈,因为这会导致路由和页面状态错误。 路由的触发方式及页面生命周期功能如下: 预路由页面 Tab切换对应的Life周期(以A、B页为tabbar页,C为A页打开的页面,D页为C页打开的页面): 提示:getCurrentPages()♹❝用于获取当前页面函数堆栈示例以堆栈顺序的数组形式指定。第一个元素是主页,最后一个元素是当前页面。
路由方式
路由方式 触发时机 初始化 小程序打开的第一页 onLoad、onSHow 打开新页面 调用 API wx.component
onHide onLoad, onShow 页面重定向 调用API wx.redirectTo❝component❝
onUnload onLoad,onShow 返回页面 API 调用 wx.navigateBack ="navigateBack">
或用户按左上角后退按钮 onShow选项卡切换 调用 API wx.switchTab
或使用组件 对于不同的情况。
重启 调用API wx.reLaunch
或使用组件onon onShow
当前页面 路由页面 触发的生命周期(按顺序) A A 什么也没发生 A B A.onHide(), B.onShow(), B .how() B (打开) A.onHide(), B.onShow() C A C.onUnload(), A.onShow() A C.onUnload(), A.onShow() B C.onUnload(), B.onLoad(), B.onShow() D B D.onUnload(), C.onUnload(), B .onLoad() , B.onShow() D (来自转发) A D.onUnload(), A.onLoad(), A . onShow() D (来自转发输入).b d.onunload ()、b.onload ()、b.onshow () 导航至
、重定向至选项卡。
switchTab
只能打开TabBar页面。 reLaunch
可以打开任何页面。 onLoad
中获取。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。