探讨uniapp的路由与页面栈及参数传递问题

1首先引入页面栈

框架以栈的形式管理当前所有页面, 当发生路由切换的时候,页面栈的表现如下:

页面的路由操作无非:初始化、打开新页面、页面重定向、页面返回、tab切换、重加载。

2页面路由

uni-app 有两种页面路由跳转方式:使用navigator组件跳转、调用API跳转。

2.1navigator

页面跳转。该组件类似HTML中的<a>组件,但只能跳转本地页面 。目标页面必须在pages.json中注册

  • 跳转tabbar页面,必须设置open-type="switchTab"

3 路由跳转

  • navigateTo, redirectTo 只能打开非 tabBar 页面。
  • switchTab 只能打开 tabBar 页面。
  • reLaunch 可以打开任意页面。
  • 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
  • 不能在 App.vue 里面进行页面跳转。

保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack 可以返回到原页面。

初始状态:

点击页面跳转几次:

注意传值问题:是可以传值的

我们使用出栈操作 uni.navigateBack

3.2 redirect

关闭当前页面,跳转到应用内的某个页面。

java 复制代码
toNavigate() {
	uni.redirectTo({
		url: '/pages/one/one?name=FOUR'
	});
},

注意:这里页面回退操作将无法起作用,因为页面栈中已经不存在之前的页面了!!!
那么这里会传值过来吗?我们验证一下: 是可以的

3.3 switchTab

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

首先我们验证非tarbar页面的跳转:

java 复制代码
toNavigate() {
	uni.switchTab({
		url: '/pages/one/one?name=INDEX'
	});
},

这里将报错:switchTab:fail can not switch to no-tabBar page

我们这里跳转tarbar页面:

首先我们配置一下tarbar的配置:

针对跳转tarbar页面的路由传值问题:这里是不会传值的

3.4 reLaunch

关闭所有页面,打开到应用内的某个页面。
针对于 tarbar页面

针对于非tarbar页面 与上面的行为保持一致

相关推荐
h7ml1 分钟前
企业微信通讯录同步服务的增量更新算法与冲突解决策略
服务器·算法·企业微信
忒可君2 分钟前
2026新年第一篇:uni-app + AI = 3分钟实现数据大屏
前端·vue.js·uni-app
Cx330❀3 分钟前
Linux进程前言:从冯诺依曼体系到操作系统的技术演进
linux·运维·服务器
行走的陀螺仪3 分钟前
UniApp 横向可滚动 Tab 组件开发详解
uni-app·封装组件·tabs·自定义封装组件·可滚动组件tab
阿巴~阿巴~4 分钟前
帧长、MAC与ARP:解密局域网通信的底层逻辑与工程权衡
linux·服务器·网络·网络协议·tcp/ip·架构·以太网帧
Maggie_ssss_supp4 分钟前
Linux-计算机网络
服务器·网络·计算机网络
Qiuner5 分钟前
Spring Boot 全局异常处理策略设计(三):@ExceptionHandler 与 @ControllerAdvice 生效原理源码解析
java·spring boot·后端
咕噜企业分发小米7 分钟前
云服务器如何支持直播间的实时互动?
运维·服务器·实时互动
零度@7 分钟前
Java 消息中间件 - RabbitMQ 全解(保姆级 2026)
java·rabbitmq·java-rabbitmq
u0104058367 分钟前
企业微信自建应用权限模型与 RBAC 在 Spring Security 中的映射
java·spring·企业微信