PHP前端开发

微信小程序之路由问题

百变鹏仔 4天前 #前端问答
文章标签 路由


路由方式

对于路由的触发方式以及页面生命周期函数如下:
以下是路由方式的类型,触发时机

路由方式 触发时机路由前页面路由后页面
初始化     小程序打开的第一个页面
onLoad, onShow
打开新页面   调用API wx.navigateTo  或使用onHideonLoad, onShow
页面重定向 调用API   wx.redirectTo 或使用组件onUnloadonLoad, onShow
页面返回 调用API  wx.navigateBack 或使用组件 或用户按左上角返回按钮onUnloadonShow
Tab 切换 调用API wx.switchTab 或使用组建时  或用户切换Tab
使用情况看以下详解
重启动调用API wx.reLaunch 或使用组件onUnload

Tab切换对应的生命周期(以A、B页面为Tabbar页面,C是从A页面打开的页面, D页面是从C页面打开的页面为例):

当前页面路由后页面触发的生命周期(按顺序)
AANothing happend
ABA.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()


提示:

  • navigateTo, redirectTo 只能打开非tabBar页面。

  • switchTab只能打开tabBar页面。

  • 页面底部的tabBar由页面决定,即只要定义为tabBar的页面,底部都有tabBar.

  • 调用页面路由带的参数可以在目标页面的onLoad中获取。