小程序的跳转方式有多种,其中我们最常用到的方式主要是tt.navigateTo,但由于页面栈的限制,当达到限制后,跳转就没有响应了。因此,我们聊聊跳转的各种方式和场景,来避免出现这种情况。
tt.navigateTo
- 保留当前页面,跳转到应用内的某个页面,但是不能跳转到 tabBar 页面,使用 tt.navigateBack 可以返回到原页面。
tt.navigateTo({
url: "/pages/index/index",
query: {
productId: "123456"
},
success() {},
fail() {},
complete() {}
})
tt.redirectTo
- 关闭当前页面,跳转到应用内的某个页面,不能跳转到 tabBar 页面。
tt.redirectTo({
url: '/pages/index/index',
query: {
productId: "123456"
},
success() {},
fail() {},
complete() {}
});
tt.switchTab
- 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,目标 tabBar 页面需要在 app.json 中定义。
tt.switchTab({
url: '/pages/index/index',
success() {},
fail() {},
complete() {}
});
tt.navigateBack
- 关闭当前页面,返回上一页面或多级页面。
tt.navigateBack({
delta: 1,
success() {},
fail() {},
complete() {}
})
tt.reLaunch
- 关闭所有页面,打开应用内的某个页面。
tt.reLaunch({
url: '/pages/index/index',
query: {
productId: "123456"
},
success() {},
fail() {},
complete() {}
})