1、导航式跳转
<navigator></navigator>
组件:只能跳转本地页面。目标页面必须在pages.json中注册。
从A页面跳转到B页面,有以下几种情况:
- 普通页跳转到普通页:
open-type="navigate"
(默认navigate) - 普通页跳转到tabBar页面:
open-type="switchTab"
- tabBar页面跳转到普通页:
open-type="navigate"
- tabBar页面跳转到tabBar页面:
open-type="switchTab"
2、编程式跳转
从A页面跳转到B页面,有以下几种情况:
- 普通页跳转到普通页:
uni.navigateTo()
- 普通页跳转到tabBar页面:
uni.switchTab()
- tabBar页面跳转到普通页:
uni.navigateTo()
- tabBar页面跳转到tabBar页面:
uni.switchTab()
页面跳转的几个方法:
- uni.navigateTo():保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
- uni.switchTab():跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
- uni.redirectTo():关闭当前页面,跳转到应用内的某个页面。
- uni.reLaunch():关闭所有页面,打开到应用内的某个页面。
- uni.navigateBack():关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
- uni.preloadPage():预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。
3、传参和接收
页面A:传参
<template>
<view>
<!-- 导航式跳转 -->
<navigator open-type="navigate" url="uploadPicture?id=100&name='楚楚姑娘'">传参</navigator>
<!-- 编程式跳转 -->
<button @click="sendParams" type="default">传参</button>
</view>
</template>
<script>
export default{
data(){
return{}
},
methods:{
sendParams() {
uni.navigateTo({
url:'uploadPicture?id=100&name="花花公子"'
})
}
}
}
</script>
页面B:接收参数
<script>
export default{
onLoad(option) {
console.log('传来的参数:', option);
}
}
</script>