探讨uniapp的navigator 页面跳转问题
navigator 页面跳转。该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。
"tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "black","backgroundColor": "#ffffff",// tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。"list": [{"pagePath": "pages/navigator/navigator","text": "tab1"}, {"pagePath": "pages/navigator/navigate/navigate","text": "tab2"}, {"pagePath": "pages/textareaD/textareaD","text": "tab3"}]}
1 uni.navigateTo(OBJECT)
保留当前页面【当前页面就被隐藏了】,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
<navigator url="navigate/navigate?title=navigate" hover-class="navigator-hover"><button type="default">跳转到新页面</button>
</navigator>
但是这里遇到这样一个问题:navigateTo:fail can not navigateTo a tabbar page

使用uni.navigateBack可以返回到原页面。
其中:

//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({url: 'test?id=1&name=uniapp'
});
// 在test.vue页面接受参数
export default {onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数console.log(option.id); //打印出上个页面传递的参数。console.log(option.name); //打印出上个页面传递的参数。}
}
// 在起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据
uni.navigateTo({url: '/pages/test?id=1',events: {// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据acceptDataFromOpenedPage: function(data) {console.log(data)},someEvent: function(data) {console.log(data)}...},success: function(res) {// 通过eventChannel向被打开页面传送数据res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })}
})// 在test.vue页面,向起始页通过事件传递数据
onLoad: function(option) {const eventChannel = this.getOpenerEventChannel();eventChannel.emit('acceptDataFromOpenedPage', {data: 'data from test page'});eventChannel.emit('someEvent', {data: 'data from test page for someEvent'});// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据eventChannel.on('acceptDataFromOpenerPage', function(data) {console.log(data)})
}
url有长度限制,太长的字符串会传递失败,可改用窗体通信、全局变量,另外参数中出现空格等特殊字符时需要对参数进行编码,如下为使用encodeURIComponent对参数进行编码的示例。
<navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
// 在test.vue页面接受参数
onLoad: function (option) {const item = JSON.parse(decodeURIComponent(option.item));
}
注意:
- 页面跳转路径有层级限制,不能无限制跳转新页面
- 跳转到 tabBar 页面只能使用 switchTab 跳转
- 路由API的目标页面必须是在pages.json里注册的vue页面。如果想打开web url,在App平台可以使用
plus.runtime.openURL或web-view组件;H5平台使用window.open;小程序平台使用web-view组件(url需在小程序的联网白名单中)。在hellouni-app中有个组件ulink.vue已对多端进行封装,可参考
2 uni.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。

3 uni.reLaunch(OBJECT)
关闭所有页面,打开到应用内的某个页面。
注意: 如果调用了 uni.preloadPage(OBJECT) 不会关闭,仅触发生命周期 onHide
H5端调用uni.reLaunch之后之前页面栈会销毁,但是无法清空浏览器之前的历史记录,此时navigateBack不能返回,如果存在历史记录的话点击浏览器的返回按钮或者调用history.back()仍然可以导航到浏览器的其他历史记录
4 uni.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
注意: 如果调用了 uni.preloadPage(OBJECT) 不会关闭,仅触发生命周期 onHide

5 uni.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
OBJECT参数说明

6 EventChannel
2.8.9+ 支持 页面间事件通信通道
方法:
EventChannel.emit(string eventName, any args)
触发一个事件
string eventName 事件名称
any args 事件参数
EventChannel.off(string eventName, function fn)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数
string eventName 事件名称
function fn 事件监听函数
EventChannel.on(string eventName, function fn)
持续监听一个事件
string eventName 事件名称
function fn 事件监听函数
EventChannel.once(string eventName, function fn)
监听一个事件一次,触发后失效
string eventName 事件名称
function fn 事件监听函数
Tips:
- navigateTo, redirectTo 只能打开非 tabBar 页面。 switchTab 只能打开 tabBar 页面。
reLaunch 可以打开任意页面。 - 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
- 不能在 App.vue 里面进行页面跳转。
- H5端页面刷新之后页面栈会消失,此时navigateBack不能返回,如果一定要返回可以使用history.back()导航到浏览器的其他历史记录。
7 getCurrentPages()
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。
每个页面实例的方法属性列表:

相关文章:
探讨uniapp的navigator 页面跳转问题
navigator 页面跳转。该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。 "tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "bl…...
使用Epoll实现高效的多路I/O转接
文章目录 概述1. 理解Epoll机制2. Epoll的三个主要函数3. 基于Epoll实现多路I/O转接4. 总结 概述 在网络编程中,高效地处理大量并发连接是提升系统性能的关键。传统的多线程或多进程模型在这种情况下可能会导致资源消耗过大,而Epoll(事件驱动…...
流程挖掘in汽车丨宝马的流程效能提升实例
汽车行业在未来10年里,可能会面临比过去50年更多的变化。电动化、智能化、共享化和自动驾驶等方面的趋势可能给企业流程带来以下挑战: 供应链管理-电动化和智能化的发展可能导致供应链中的零部件和系统结构发生变化,企业需要重新评估和优化供…...
微信小程序实现当前页面更新上一个页面
日常项目中需要实现的一个价格脱敏功能:通过点击页面二中的查看完整信息 点击回退按钮实现页面一中的价格显露出来 通过查询了大量资料发现 大多数都是通过调用上一个接口的onload 或者onshow 实现视图更新 经测试后 发现 无法实现 只能更改数据 无法更新视图 实现…...
基于PSO-KELM的时间序列数据预测(含对比实验)
前段时间有粉丝私信想让我出一期对时间序列预测的文章,所以今天它来了。 时间序列数据,如股指价格,具有波动性、非线性和突变的特点,对于这类数据的预测往往需要可靠强健的预测模型,而传统的机器学习算法如SVM、BP等…...
线性代数(二) 矩阵及其运算
前言 行列式det(A) 其实表示的只是一个值 ∣ a b c d ∣ a d − b c \begin{vmatrix} a & b\\ c & d\end{vmatrix} ad -bc acbd ad−bc,其基本变化是基于这个值是不变。而矩阵表示的是一个数表。 定义 矩阵与线性变换的关系 即得 ( a 11 a 12…...
【图像分类】理论篇(4)图像增强opencv实现
随机旋转 随机旋转是一种图像增强技术,它通过将图像以随机角度进行旋转来增加数据的多样性,从而帮助改善模型的鲁棒性和泛化能力。这在训练深度学习模型时尤其有用,可以使模型更好地适应各种角度的输入。 原图像: 旋转后的图像&…...
Centos下的tcpdump抓包用法
先查一下是否安装, 无的话装一下 (版本低的用yum install) : rpm -qa tcpdump dnf install tcpdump 1. 列出能抓包的网卡: tcpdump -D | --list-interfaces 2. 在eth0网卡上抓来源为10.1.1.1 的包, 只抓一个包 (-n这里是不解析DNS) : tcpdump -i eth0 -n src 10.1.1.1 -…...
自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的存储与应用]
分类目录:《自然语言处理从入门到应用》总目录 使用SQLite存储的实体记忆 我们将创建一个简单的对话链,该链使用ConversationEntityMemory,并使用SqliteEntityStore作为后端存储。使用EntitySqliteStore作为记忆entity_store属性上的参数&am…...
微服务与Nacos概述-5
引入OpenFeign 添加依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>com.alibaba.cloud</groupId>…...
第九章 动态规划part08(代码随想录)
139.单词拆分 1. 确定dp[i][j] dp数组以及下标的含义一维dp数组的递推公式 dp[i] : 字符串长度为i的话,dp[i]为true,表示可以单词能被在字典中出现的单词组成。 dp[s.size()] true; 说明可以利用字典中出现的单词拼接出 s 。 2. 一维dp数组的递推公式…...
智能家居(1)---工厂模式实现灯光控制(继电器组)以及火灾报警模组的封装
采用工厂模式以面向对象的方式来封装各种设备模块,方便整合项目以及后期的维护和扩展 mainPro.c(主函数) #include <stdio.h> #include "controlDevice.h"struct Devices *pdeviceHead NULL; //设备工厂链…...
kubernetes的存储卷使用
目录 一、为什么使用存储卷 二、emptyDir存储卷 1.概念 2.创建Pod emptyDir 3. 验证emptyDir存储卷 三、hostPath存储卷 1.概念 2.创建Pod hostPath 3.验证hostPath存储卷 三、nfs共享存储卷 1.概念 2.安装nfs,配置nfs服务 3.创建Pod 4.验证nfs存储卷 一、…...
centos 之安装 openssl 1.1.1报错
源码make时报错,可能是系统的perl的版本太低问题。 [rootlocalhost ~]# cpan -a | grep Test::More Test::More 0.92 1.302171 EXODIST/Test-Simple-1.302171.tar.gz [rootlocalhost ~]# cpan -a | grep Text::Template [rootlocalhost ~]# …...
matlab使用教程(16)—图论中图的定义与修改
1.修改现有图的节点和边 此示例演示如何使用 addedge 、 rmedge 、 addnode 、 rmnode 、 findedge 、 findnode 及 subgraph 函数访问和修改 graph 或 digraph 对象中的节点和/或边。 1.1 添加节点 创建一个包含四个节点和四条边的图。s 和 t 中的对应元素用于指定每条…...
【C++面向对象】--- 继承 的奥秘(下篇)
个人主页:平行线也会相交💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C之路】💌 本专栏旨在记录C的学习路线,望对大家有所帮助🙇 希望我们一起努力、成长&…...
Android 面试笔记整理-Binder机制
作者:浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…...
编程小白的自学笔记十三(python办公自动化读写文件)
系列文章目录 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二) 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) 编程小白的自学笔记十(python爬虫入门二实例代码详解)…...
【Mariadb高可用MHA】
目录 一、概述 1.概念 2.组成 3.特点 4.工作原理 二、案例介绍 1.192.168.42.3 2.192.168.42.4 3.192.168.42.5 4.192.168.42.6 三、实际构建MHA 1.ssh免密登录 1.1 所有节点配置hosts 1.2 192.168.42.3 1.3 192.168.42.4 1.4 192.168.42.5 1.5 192.168.42.6 …...
网络五层协议
应用层(http,https),传输层(udp,tcp),网络层(ip),数据链路层,物理层 什么是http?http 与https 的区别_日晞的博客-CSDN博客 TCP 与UDP 区别_互联网业务udp小包传输_日晞的博客-CSDN博客...
【深度验证】ArcGIS Band Collection Statistics相关性分析结果偏差的根源探究
1. 当GIS分析结果与统计软件不一致时 最近在做一个遥感数据分析项目时,我遇到了一个奇怪的现象:同样的数据集,在ArcGIS中使用Band Collection Statistics工具计算出的皮尔逊相关系数,与在Excel和R中计算的结果存在明显差异。起初我…...
MediaPipe农业智能化:10个精准农业与作物监测的创新应用
MediaPipe农业智能化:10个精准农业与作物监测的创新应用 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe MediaPipe作为谷歌开源的跨平…...
新国标GB 44263实战:如何用一颗传感器搞定交/直/脉动全波形漏电检测?
第一名背后鲜为人知的“现实”我国已经建成全球规模最大的电动汽车充电网络,国家能源局数据显示,截至2026年1月底,我国电动汽车充电基础设施(枪)总数达到2069.8万个,公共充电设施(枪)…...
Hunyuan-MT-7B保姆级教程:Pixel Language Portal在树莓派5上的轻量级翻译终端部署
Hunyuan-MT-7B保姆级教程:Pixel Language Portal在树莓派5上的轻量级翻译终端部署 1. 项目介绍与核心价值 Pixel Language Portal(像素语言跨维传送门)是一款基于Tencent Hunyuan-MT-7B大语言模型的创新翻译工具。与传统翻译软件不同&#…...
Phi-4-mini-reasoning应对软件测试:自动生成测试用例与缺陷分析
Phi-4-mini-reasoning应对软件测试:自动生成测试用例与缺陷分析 1. 引言:软件测试的痛点与AI解决方案 在软件开发的生命周期中,测试环节往往占据30%-50%的项目时间。传统测试工作面临两大核心挑战:一是测试用例设计需要大量人工…...
掌握TegraRcmGUI:从入门到精通的Switch注入实践指南
掌握TegraRcmGUI:从入门到精通的Switch注入实践指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款基于C开发的图形化界面工具…...
5个维度深度评估:哪款内容解锁工具真正值得投入时间?
5个维度深度评估:哪款内容解锁工具真正值得投入时间? 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代,付费墙已成为内容获取的主要障…...
实验室搬砖实录:手把手教你搞定柱层析,从TLC监测到梯度洗脱的保姆级避坑指南
实验室搬砖实录:手把手教你搞定柱层析,从TLC监测到梯度洗脱的保姆级避坑指南 记得第一次独立做柱层析时,盯着那根玻璃柱看了半小时,愣是没敢动手。TLC板上明明分得挺开的点,怎么一上柱子就全乱了?洗脱液极性…...
Heygem数字人系统效果展示:看一段音频如何驱动多个数字人视频
Heygem数字人系统效果展示:看一段音频如何驱动多个数字人视频 1. 系统核心能力概览 Heygem数字人视频生成系统批量版webui版是一款基于AI技术的创新工具,能够将单一音频源同步驱动多个数字人视频生成。系统采用先进的语音驱动口型同步技术,…...
2026职业红利:AI智能体运营岗位培训如何助你实现高薪跨越?
导读: 2026年,职场竞争的底层逻辑已悄然改变。当传统运营还在为写一段文案、剪一个视频熬夜时,掌握了 AI 智能体技术的“新运营人”已经通过自动化工作流,实现了 10 倍速的产出。目前,市场对AI智能体运营经理、AI内容策…...
