在uniapp 中跳转页面,和vue差别很大,复杂一点但是更加的灵活
// 关闭当前页,返回上一页面或多级页面。
uni.navigateBack({
delta: 1
});
// 保留当前页,跳转到非tabbar页面,使用uni.navigateBack可以返回到原页面。
uni.navigateTo({
url: url
})
// 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
uni.switchTab({
url: url
})
// 关闭所有页面,打开到应用内的某个页面。
uni.reLaunch({
url: url
})
// 关闭当前页面,跳转到应用内的某个页面。
uni.redirectTo({
url: url
});
注:
- 页面跳转路径有层级限制,不能无限制跳转新页面
- 跳转到 tabBar 页面只能使用 switchTab 跳转
这些uniapp提供的api都有除了 url 的其他参数,常见的有 success fail complete
也比如 第一个navigateBack 有特殊参数 delta :(数字) 控制返回几层
传参
我们在生命周期 onload 中接收参数
onLoad(data) {}
当我们需要传递一个对象/数组的时候,拼接的字符串太长可能会有问题,而且也不好看
推荐使用 JSON 字符串 解决这个问题,也更加易读
频繁跳转
在真机调试的时候发现频繁的跳转,可能会出现 不能跳转的问题,也没有报错,最后换了一种跳转方式
这是原来的:
uni.navigateTo({}) 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
直接使用 uni.redirectTo()
就是碰到了上面提到的注意事项 页面跳转路径有层级限制,不能无限制跳转新页面,最好我们在跳转的时候即时的关闭页面