2024-08-27 10:08:47 +08:00

45 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 你要到哪儿去?—路由
## 关于 app.json 中的配置
app.json 主要是对整个小程序进行一个全局的配置。
- pages在这个配置项目中就可以配置小程序里面的页面小程序默认显示 pages 数组中的第一个页面
- windows主要配置和导航栏相关的
当然,在 app.json 中,还可以进行更多的配置,可以参阅官方文档:*https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE*
除了上面两项配置,有一个用的更多的就是 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本意是重启小程序在重启的时候可以指定要打开的页面
注意,路由之间的跳转,必然就会涉及到页面之间的跳转,页面之间的跳转,就会涉及到页面的显示和隐藏,那么也就必然的会涉及到页面的生命周期钩子函数的调用。
至于哪些生命周期钩子函数会被调用,请参阅官网
页面之间跳转的时候,如下表所示:
<img src="https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-01-11-083416.png" alt="image-20230111163416002" style="zoom:50%;" />
tabBar切换的时候如下表所示
<img src="https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-01-11-083508.png" alt="image-20230111163507749" style="zoom: 50%;" />