路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。
介绍
路由,在小程序中可以理解为就是从一个页面跳转到一个页面的一种规则。
框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:
路由方式 | 页面栈表现 |
---|---|
初始化 | 新页面入栈 |
打开新页面 | 新页面入栈 |
页面重定向 | 当前页面出栈,新页面入栈 |
页面返回 | 页面不断出栈,直到目标返回页,新页面入栈 |
Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 |
重加载 | 页面全部出栈,只留下新的页面 |
入栈相当于是 缓存了页面加载的路径,出栈则相当于是清除了页面加载路径,当清除后,点击返回按钮时,则不会返回,或则就不存在返回按钮。
触发方式和规则
一、跳转的页面必须在app.json中进行注册
"pages":[
"pages/index/index",
"pages/logs/logs",
"pages/test/test"
],
二、API共5种跳转方式
1、使用API接口wx.navigateTo,原页面保留,可使用wx.navigateBack返回到原页面,需要跳转的应用内非 tabBar 的页面的路径
wx.navigateTo({
url: 'test?id=1'
})
2、 wx.redirectTo 页面重定向,关闭当前页面,需要跳转的应用内非 tabBar 的页面的路径
wx.redirectTo({
url: 'test?id=1'
})
3、 wx.navigateBack,关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层
wx.navigateBack({
delta: 2
})
4、 wx.switchTab,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
wx.switchTab({
url: '/index'
})
5、 wx.reLaunch,关闭所有页面,打开到应用内的某个页面,需要跳转的应用内非 tabBar 的页面的路径,重启动
wx.reLaunch({
url: 'test?id=1'
})
6、组件和调用api接口是一致的
open-type 有效值 | 对应功能 |
---|---|
navigate | 对应 wx.navigateTo 的功能 |
redirect | 对应 wx.redirectTo 的功能 |
switchTab | 对应 wx.switchTab 的功能 |
reLaunch | 对应 wx.reLaunch 的功能 |
Tab navigateBack | 对应 wx.navigateBack 的功能 |