在讲它们的差异之前,我们先引入一个概念:页面栈

1. 栈是一种连续储存的数据结构,具有先进后出的性质。
2. 页面栈就是用来储存页面的栈,也有栈的特性。uniapp是通过页面栈来管理所有的页面,我们可以将页面栈理解为一个放页面的容器。每次跳转页面,都会从这个容器中添加或者删除页面。

1. 保留当前页面,可跳转到非 tabBar 页面,使用uni.navigateBack可以返回到原页面(可传参)

uni.navigateTo({
	url: 'test?id=1&name=uniapp'
});

2. 关闭当前页面,跳转到应用内的某个页面。不可打开tabbar页面 (可传参)

uni.redirectTo({
	url: 'test?id=1'
});

3. 关闭所有页面,打开到应用内的某个页面。可打开tabbar页面(可传参)

//页面会全部出栈,只留下新的页面
uni.reLaunch({
	url: 'test?id=1'
});

4. 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。(不可传参)

uni.switchTab({
	url: '/pages/index/index'
});

5. 关闭当前页面,返回上一页面或多级页面

uni.navigateBack({
	delta: 2 //返回的页面数
});

总结:

navigateTo, redirectTo 只能打开非 Tab 页面,可传参。
switchTab 只能打开 Tab 页面,不可传参。
reLaunch 可以打开任意页面,可传参。

可参考
uni-app页面跳转的不同方式及差异
uniapp中跳转页面的方法及差别:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐