Code前端首页关于Code前端联系我们

微信小程序开发手册:逻辑层页面路由

terry 2年前 (2023-09-23) 阅读数 263 #移动小程序

页面路由

在小程序中,管理了框架所有页面的路由。

页面堆栈

框架以堆栈的形式维护当前所有页面。当路由切换发生时,页面堆栈的行为如下:

路由方法 页面堆栈的行为
初始化 新页面推入堆栈新页面打开的新页面推入堆栈
页面重定向当前页面从堆栈中压入,新页面压入堆栈。
页面返回。 页面继续退出堆栈,直到目标返回该页面,并将新页面压入堆栈。
选项卡开关 所有页面均从堆栈中拉出。 ,只留下新标签页
重新加载所有页面都从堆栈中拉出,只保留新页面

getCurrentPages()

getCurrentPages()♹❝用于获取当前页面函数堆栈示例以堆栈顺序的数组形式指定。第一个元素是主页,最后一个元素是当前页面。

提示:请勿尝试更改页面堆栈,因为这会导致路由和页面状态错误。

路由方式

路由的触发方式及页面生命周期功能如下:

路由方式 触发时机

预路由页面 初始化 小程序打开的第一页 onLoad、onSHow打开新页面 调用 API wx.component onHideonLoad, onShow页面重定向调用API wx.redirectTo❝component❝ onUnloadonLoad,onShow返回页面 API 调用 wx.navigateBack ="navigateBack"> 或用户按左上角后退按钮 onShow选项卡切换 调用 API wx.switchTab 或使用组件 对于不同的情况。 重启调用API wx.reLaunch或使用组件onon onShow

Tab切换对应的Life周期(以A、B页为tabbar页,C为A页打开的页面,D页为C页打开的页面):

当前页面路由页面触发的生命周期(按顺序)
AA什么也没发生
ABA.onHide(), B.onShow(), B .how() B (打开) A.onHide(), B.onShow()
CAC.onUnload(), A.onShow() AC.onUnload(), A.onShow() BC.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 ()

提示:

  • 导航至重定向至选项卡。
  • switchTab只能打开TabBar页面。
  • reLaunch可以打开任何页面。
  • 页面底部的tabbar是由页面决定的,即只要页面定义为tabbar,底部就会有tabbar。
  • 主叫侧的路由参数可以在目标侧的onLoad中获取。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门