navigateTo
redirectTo
(1)保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面
(如果A->B来回频繁切换,不要A B两个方法都使用这个方法。)
//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({
url: 'test?id=1&name=uniapp'
});
页面跳转路径有层级限制,不能无限制跳转新页面
跳转到 tabBar 页面只能使用 switchTab 跳转
(2)关闭当前页面,跳转到应用内的某个页面
需要跳转的应用内非 tabBar 的页面的路径,
路径后可以带参数。参数与路径之间使用?分隔,
参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
uni.redirectTo({
url: 'test?key=value&key2=value2'
});
(3)
uni.reLaunch(OBJECT)
关闭所有页面,打开到应用内的某个页面。
H5端调用uni.reLaunch之后之前页面栈会销毁,
但是无法清空浏览器之前的历史记录,此时navigateBack不能返回,
如果存在历史记录的话点击浏览器的返回按钮或者调用history.back()仍然可以导航到浏览器的其他历史记录。
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
(4)uni.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
(5)uni.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
navigateTo, redirectTo 只能打开非 tabBar 页面。
switchTab 只能打开 tabBar 页面。
reLaunch 可以打开任意页面。
页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
不能在 App.vue 里面进行页面跳转。
H5端页面刷新之后页面栈会消失,此时navigateBack不能返回,如果一定要返回可以使用history.back()导航到浏览器的其他历史记录。