news 2026/6/10 13:02:22

uniapp 实现路由切或者tab切换详细步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
uniapp 实现路由切或者tab切换详细步骤

uniapp 实现路由切或者tab切换详细步骤

在 UniApp 中实现页面路由和标签页(Tab)切换是核心开发技能。下面为你梳理详细步骤和不同场景的实践方案。
下面表格中帮助你快速了解 UniApp 中主要的页面跳转方式及其区别:

跳转方法作用适用场景关键限制
uni.navigateTo保留当前页面,跳转到新页面(可返回)普通页面跳转,如列表页→详情页页面栈最多10层;不能跳转至tabbar页面
uni.redirectTo关闭当前页面,跳转到新页面(不可返回)无需返回的跳转,如登录页→首页不能跳转至tabbar页面
uni.reLaunch关闭所有页面,打开新页面应用重启场景,如退出登录→登录页可跳转到任意页面
uni.switchTab关闭所有非tabbar页面,跳转到tabbar页面从普通页面切换回首页等tab页只能跳转至pages.json中配置的tabbar页面
uni.navigateBack返回上一页面或多级页面详情页→列表页通常与navigateTo配合使用

🔄 路由跳转详解

1. 基本跳转与传参

最常用的跳转方式是uni.navigateTo。在跳转时,可以通过URL传递参数。

// 在起始页面跳转并传递参数uni.navigateTo({url:'/pages/detail/detail?id=80&title=Hello'});

在目标页面,于onLoad生命周期函数中接收参数:

// 在目标页面(/pages/detail/detail.vue)接收参数exportdefault{onLoad(options){// options 是一个对象,包含传递过来的参数console.log(options.id);// 输出:80console.log(options.title);// 输出:'Hello'}}

注意:通过URL传递的参数值会被转换为字符串类型,如有需要(如ID为数字),请在接收后进行类型转换 。

2. 返回上一页

使用uni.navigateBack可以返回上一页面或多级页面。

// 返回上一页uni.navigateBack();// 返回上两级页面uni.navigateBack({delta:2});

🏷️ 实现Tab切换

在 UniApp 中,Tab 切换有两种主要形式:基于原生 TabBar 的切换自定义顶部标签页切换

1. 原生TabBar切换(底部导航栏)

这是最标准的方式,通过uni.switchTab实现,体验与原生应用一致。

步骤一:配置 pages.json
首先,需要在pages.json中正确配置tabBar

{"pages":[{"path":"pages/index/index","style":{"navigationBarTitleText":"首页"}},{"path":"pages/category/category","style":{"navigationBarTitleText":"分类"}},{"path":"pages/cart/cart","style":{"navigationBarTitleText":"购物车"}},{"path":"pages/profile/profile","style":{"navigationBarTitleText":"我的"}}],"tabBar":{"color":"#7A7E83","selectedColor":"#007AFF","backgroundColor":"#F8F8F8","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"static/tab-home.png","selectedIconPath":"static/tab-home-active.png"},{"pagePath":"pages/category/category","text":"分类","iconPath":"static/tab-cate.png","selectedIconPath":"static/tab-cate-active.png"}]}}

步骤二:使用API跳转
在代码中,使用uni.switchTab进行跳转。

// 从任意非tabbar页面跳转到首页(tabbar页面)uni.switchTab({url:'/pages/index/index'});

重要uni.switchTaburl不能带参数 。

2. 自定义顶部标签页切换

当需要更灵活的样式或顶部标签效果时,可以结合swiperscroll-view组件自定义。

步骤一:构建模板结构

<template><view><!-- 1. 自定义顶部标签栏 --><scroll-viewscroll-xclass="nav-scroll":scroll-into-view="currentNavId"><viewv-for="(item, index) in navList":key="index":id="'nav'+index":class="['nav-item', currentTab === index ?'active':'']"@click="switchTab(index)">{{ item.text }}</view></scroll-view><!-- 2. 可滑动的页面区域 --><swiper:current="currentTab"@change="onSwiperChange"class="swiper-box"><swiper-itemv-for="(item, index) in navList":key="index"><viewclass="swiper-item"><!-- 第一个标签页的内容 --><textv-if="index === 0">首页内容</text><!-- 第二个标签页的内容 --><textv-if="index === 1">分类内容</text><!-- 可以在这里嵌入子组件 --></view></swiper-item></swiper></view></template>

步骤二:实现逻辑与样式

<script>exportdefault{data(){return{currentTab:0,// 当前选中的标签索引navList:[// 标签列表{text:'首页'},{text:'分类'}]};},methods:{// 点击标签切换switchTab(index){this.currentTab=index;},// 滑动swiper时触发onSwiperChange(e){this.currentTab=e.detail.current;}}};</script><style>.nav-scroll{white-space:nowrap;width:100%;background-color:#f8f8f8;}.nav-item{display:inline-block;padding:20rpx30rpx;font-size:30rpx;}.nav-item.active{color:#007AFF;font-weight:bold;border-bottom:4rpx solid #007AFF;}.swiper-box{height:calc(100vh-80rpx);/* 根据导航栏高度调整 */}.swiper-item{height:100%;padding:20rpx;box-sizing:border-box;}</style>

这种自定义方式能实现丰富的交互效果,如滑动切换、标签滚动居中定位等 。

💡 场景选择与建议

  • 需要标准底部导航:优先使用原生TabBar,体验最佳且配置简单。
  • 需要顶部导航或高度自定义UI:使用自定义顶部标签页方案。
  • 普通页面跳转(如进入详情页):使用uni.navigateTo
  • 完成操作后无需返回(如登录成功):使用uni.redirectTouni.reLaunch
  • 从深层级页面一键返回首页:使用uni.switchTab(回tab页)或uni.reLaunch(回普通页)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:34:25

COMSOL光栅的BIC合并

comsol光栅merging BIC。咱们今天聊点硬核但有趣的东西——如何在COMSOL里玩转光栅结构里的merging BIC&#xff08;连续谱束缚态&#xff09;。这玩意儿在微纳光学里火得不行&#xff0c;但实际操作时总有几个坑能让你在实验室通宵改参数。先别急着翻手册&#xff0c;咱们直接…

作者头像 李华
网站建设 2026/6/10 10:35:22

2025年12月数字人厂商综合实力榜单发布,揭示产业三大演进方向

2025 年 12 月&#xff0c;国内权威机构联合行业协会发布《2025 年中国数字人企业厂商综合竞争力排名榜》&#xff0c;榜单基于技术实力、场景落地、商业价值、生态布局四大核心维度&#xff0c;对全国数千家数字人相关企业进行全面评估。结果显示&#xff0c;数字人产业已告别…

作者头像 李华
网站建设 2026/6/10 8:08:06

数字卡尺与几何魔法:聊聊那些藏在代码里的测量艺术

直线拟合&#xff0c;圆拟合&#xff0c;尺寸测量&#xff0c;卡尺工具工业相机镜头下的金属零件边缘泛着冷光&#xff0c;工程师老张盯着屏幕上的十字标线&#xff1a;"这倒角尺寸怎么测不准呢&#xff1f;"此刻&#xff0c;电脑后台正上演着一场像素世界的几何博弈…

作者头像 李华
网站建设 2026/6/10 2:30:01

水塔液位控制系统实战手记

水塔液位控制系统西门子S7-1200PLC和TP700博途V15&#xff0c;带io表和PLC电路图CAD厂区西北角那个老水塔改造项目终于交到我手上了。领导撂下一句"用新PLC做&#xff0c;带触摸屏"&#xff0c;我默默打开TIA Portal V15&#xff0c;开始盘算S7-1214C的IO分配。这套系…

作者头像 李华
网站建设 2026/6/10 7:32:25

全能小微企业报告API接口调用代码流程、接入方法以及应用场景

一、一站式解决小微企业“信贷盲区” 在小微企业信贷&#xff08;SME Lending&#xff09;和供应链金融场景中&#xff0c;核心难点在于“公私难分”。评估一家小微企业的风险&#xff0c;不仅要看企业本身的经营状况&#xff0c;更要深度穿透企业主&#xff08;法入/实控人&am…

作者头像 李华