小程序路由
一、路由管理
- 在小程序中全部页面的路由所有由框架进行管理,框架以栈的形式维护了当前的全部页面。
二、栈(计算机术语)
- 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅容许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另外一端称为栈底。向一个栈插入新元素又称做进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称做出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
- 可进可出(进是添加,处删除),也就意味这小程序中能够跳转新页面,能够后退,可是不能前进
三、浏览器如何管理浏览记录
- 浏览器以浏览新网页的形式将全部浏览都保留在历史记录,任何浏览都会保存,后退不会删除浏览器记录,也就意味着能够前进
场景
A页面 A页面进栈
A页面 -> B页面 B页面进栈
B页面 -> C页面 C页面进栈
C页面后退 C页面出栈
B页面 -> D页面 D页面进栈
[A,B,D]
D页面打开 A页面 在一个A页面进栈
四、getCurrentPages()
- 该函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。在小程序中栈最多只能维护10个数据
五、栈的表现
- 打开新页面 -> 进栈
- 后退 -> 当前页面出栈
- 重定向 -> 当期页面出栈新页面入栈
- 重加载 -> 页面所有出栈保留当期页面栈
- Tab 切换 -> 页面所有出栈,只留下新的 Tab 页面
五、路由跳转方式
- 在小程序中路由跳转方式有两种(组件跳转,api跳转)
跳转形式 |
Api |
组件 |
打开新页面 |
wx.navigateTo(‘路径’) |
<\navigator open-type=“navigateTo”/> |
页面重定向 |
wx.redirectTo |
<\navigator open-type=“redirectTo”/> |
页面返回 |
wx.navigateBack |
<\navigator open-type=“navigateBack”> |
Tab 切换 |
wx.switchTab |
<\navigator open-type=“switchTab”/> |
重启动 |
wx.reLaunch |
<\navigator open-type=“reLaunch”/> |
注意:
- navigateTo, redirectTo 只能打开非 tabBar 页面。
- switchTab 只能打开 tabBar 页面。
- reLaunch 能够打开任意页面。
- 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
- 调用页面路由带的参数能够在目标页面的onLoad中获取
- 页面只有在出栈后才会被卸载也就是执行onUnload, tab页面只有在程序卸载的时候才会卸载