uniapp内置多种跳转方式,我这里介绍两个最常用的跳转,uni.navigateTo和uni.switchTab,前者为跳转到非TabBar页面,后者为跳转到TabBar页面,所谓TabBar就是底部导航栏配置的页面,例如下方的index.vue。
在pages.json中
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "static/buliangzhu.png",
"selectedIconPath": "static/zhuyeliang.png"
},
{
"pagePath": "pages/user/user",
"text": "个人中心",
"iconPath": "static/user2.png",
"selectedIconPath": "static/user1.png"
}
]
},
配置成导航栏的页面无法通过navigateTo方法跳转,只能通过switchTab方法。
一、navigateTo
例如我们需要在index.vue页面里面跳转到test1.vue,test1是非tabBar页面,就给需要绑定事件的按钮添加点击事件。再在methods里面编写方法,调用uni.navigateTo
<!-- index.vue -->
<template>
<view class="home ">
<button @click="toTest1"></button>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
toTest1() {
uni.navigateTo({
url:'/pages/test1/test1'
})
}
}
}
</script>
二、switchTab
这里我们在test1页面中想点击按钮跳转到index页面
<template>
<view class="home ">
<button @click="toIndex"></button>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
toIndex() {
uni.switchTab({
url:'/pages/index/index'
})
}
}
}
</script>
如果要从成功后跳转到tabBar页面只能用switchTab
success: (res) => {
console.log(res.data.status, '状态');
if (res.data.status == 1) {
this.msgType = 'success'
this.messageText = '更新成功'
this.$refs.message.open()
uni.switchTab({
url: '/pages/index/index'
})
} else {
this.msgType = 'error'
this.messageText = '更新失败'
this.$refs.message.open()
}