微信小程序—路由

关于 app.json 中的配置

app.json 主要是对整个小程序进行一个全局的配置。

  • pages:在这个配置项目中,就可以配置小程序里面的页面,小程序默认显示 pages 数组中的第一个页面
  • windows:主要配置和导航栏相关的

当然,在 app.json 中,还可以进行更多的配置,可以参阅官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#全局配置

除了上面两项配置,有一个用的更多的就是 tabBar,在配置这个项目是,list 是必不可少的,list 对应的值为一个数组,数组里面为一个一个的对象,每个对象代表一个 tabBar 的配置,最少要有两个,最多只能有五个。

关于 tabBar 的配置,更多请参阅官方文档:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#tabBar

路由的跳转

首先,我们需要有页面栈的一个概念,这一点实际上和 vue-router 以及 react-router 这种前端路由库的栈的概念是一致。当你新推入一个页面的时候,这个页面会处于栈顶,当你点击返回的时候,当前页面会出栈。

在小程序中,限制了一个路由栈的最大层级为 10 层,当已经达到 10 层之后,就无法推入新的页面。

  • wx.navigateTo:向当前的页面栈新推入一个页面
  • wx.navigateBack:当前页面出栈
  • wx.redirectTo:替换当前的页面,当页面栈到达10层没法再新增的时候,往往就是使用redirectTo这个API进行页面跳转。
  • wx.switchTab:负责 tabBar 的切换,注意,在进行 tabBar 的切换的时候,原来的页面栈会被清空。注意:wx.navigateTo和wx.redirectTo只能打开非TabBar页面,wx.switchTab只能打开Tabbar页面
  • wx. reLaunch:这个API本意是重启小程序,在重启的时候可以指定要打开的页面

注意,路由之间的跳转,必然就会涉及到页面之间的跳转,页面之间的跳转,就会涉及到页面的显示和隐藏,那么也就必然的会涉及到页面的生命周期钩子函数的调用。

至于哪些生命周期钩子函数会被调用,请参阅官网

页面之间跳转的时候,如下表所示:

tabBar切换的时候,如下表所示:

相关推荐
Coder-coco1 小时前
游戏助手|游戏攻略|基于SprinBoot+vue的游戏攻略系统小程序(源码+数据库+文档)
java·vue.js·spring boot·游戏·小程序·论文·游戏助手
小小王app小程序开发15 小时前
盲盒小程序一番赏衍生玩法:魔王赏、非酋赏、狂欢赏差异化分析
小程序
2501_9151063217 小时前
iOS App 测试工具全景分析,构建从开发调试到线上监控的多阶段工具链体系
android·测试工具·ios·小程序·uni-app·iphone·webview
头发还在的女程序员2 天前
基于JAVA语言的短剧小程序-抖音短剧小程序
java·开发语言·小程序
2501_916007472 天前
iOS 应用性能测试的工程化流程,构建从指标采集到问题归因的多工具协同测试体系
android·ios·小程序·https·uni-app·iphone·webview
源码_V_saaskw2 天前
JAVA国际版同城跑腿源码快递代取帮买帮送同城服务源码支持Android+IOS+H5
android·java·ios·微信小程序
tbit2 天前
fluwx 拉起小程序WXLog:Error:fail to load Keychain status:-25300, keyData null:1
flutter·ios·微信小程序
book多得2 天前
刷题专用微信小程序推荐
微信小程序·小程序
00后程序员张2 天前
iOS 抓不到包怎么办?从 HTTPS 解密、QUIC 排查到 TCP 数据流分析的完整解决方案
android·tcp/ip·ios·小程序·https·uni-app·iphone
技术与健康2 天前
微信小程序云开发实践:共享环境与LLM整合经验
微信小程序·小程序