小程序路由传参和获取页面栈方法

路由方法

  • navigateToredirectTo 只能打开非 tabBar 页面。
  • switchTab 只能打开 tabBar 页面。
  • reLaunch 可以打开任意页面。
  • 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
  • 调用页面路由带的参数可以在目标页面的onLoad中获取。

 1. wx.navigateTo
当需要从一个页面跳转到另一个页面,并且希望用户能通过返回按钮返回到前一个页面时使用

wx.navigateTo({url: '/pages/details/details?id=123', // 跳转到指定页面并传递参数success: function(res) {// 成功后的回调console.log('跳转成功');},fail: function(err) {// 失败后的回调console.log('跳转失败', err);}
});
// pages/details/details.js
Page({onLoad: function(options) {console.log(options.id); // 输出:123this.setData({itemId: options.id});},data: {itemId: null}
});

 2. wx.redirectTo
当跳转后不希望用户返回到前一个页面时使用,如跳转到登录页后不希望用户返回 

wx.redirectTo({url: '/pages/login/login',success: function(res) {console.log('重定向成功');},fail: function(err) {console.log('重定向失败', err);}
});

 3. wx.switchTab 
当需要切换底部的 tab 页时使用

wx.switchTab({url: '/pages/home/home',success: function(res) {console.log('切换 Tab 成功');},fail: function(err) {console.log('切换 Tab 失败', err);}
});

 4. wx.reLaunch
清除整个页面栈并跳转的场景,例如在用户成功登录后,重置应用的导航栈并跳转到首页

wx.reLaunch({url: '/pages/home/home',success: function(res) {console.log('重启应用成功');},fail: function(err) {console.log('重启应用失败', err);}
});

 5. wx.navigateBack
返回到前一个或前几个页面,通过 delta 参数可以指定返回的层级数

wx.navigateBack({delta: 1, // 返回上一页面success: function(res) {console.log('返回成功');},fail: function(err) {console.log('返回失败', err);}
});

获取页面栈

wx.getCurrentPages()
假设在一个页面 details 中获取页面栈,bubu获取首页的页面实例栈顶的页面是当前显示的页面

// pages/details/details.js
Page({onLoad: function(options) {const pages = wx.getCurrentPages(); // 获取页面栈console.log(pages); // 输出当前页面栈const currentPage = pages[pages.length - 1]; // 获取当前页面const previousPage = pages[pages.length - 2]; // 获取上一个页面console.log('当前页面:', currentPage.route); // 输出当前页面的路径console.log('上一个页面:', previousPage.route); // 输出上一个页面的路径// 假设我们想在上一个页面上设置一些数据if (previousPage) {previousPage.setData({someData: '来自详情页的数据'});}}
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 计算复共轭

目录 一、概述1、算法概述2、主要函数二、代码示例1、求复数的复共轭2、求矩阵中复数值的复共轭三、参考链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、概述 1、算法概述 2、主要函数 Zc = conj(Z)返回 Z …

【python】Python中小巧的异步web框架Sanic快速上手实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

理解torch.argmax() ,我是错误的

torch.max() import torch# 定义张量 b b torch.tensor([[1, 3, 5, 7],[2, 4, 6, 8],[11, 12, 13, 17]])# 使用 torch.max() 找到最大值 max_indices torch.max(b, dim0)print(max_indices) 输出:>>> print(max_indices) torch.return_types.max( valu…

【13.3 python中的高级文件操作】

python中的高级文件操作 在Python中,除了基本的文件读写和目录操作外,还有一些高级的文件和目录操作,如删除文件、重命名文件和目录、以及获取文件的基本信息等。这些操作通常通过os模块和pathlib模块来实现。下面我将详细介绍这些操作&#…

Git在IDEA中的集成操作(附步骤图)

1.先做适配操作,将安装的Git软件关联到IDEA中 点击Test之后若成功会显示出Git版本: 2.创建版本仓库 3.创建新的版本 3.1将文件提交到暂存区(不重要) 第一种方式:菜单栏提交 第二种方式:项目右键提交 4.查看历史版本信息 目…

整合sentinel遇到的小问题

1.运行jar包 ,端口为默认8080 正确命令 java -Dserver.port8090 -Dcsp.sentinel.dashboard.server127.0.0.1:8090 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar -D这些指令要在 -jar前面 在宝塔部署时,直接复制到运行命令后…

acl2的安装和vescmul的运行

使用sat一类的求解器验证乘法器,通常无法收敛,Mertcan Temel博士基于acl2实现了数字电路中乘法器的验证。下面简单介绍一下acl2的安装、vescmul的运行。 1.下载acl2 git clone https://github.com/acl2/acl2.git 2.acl2基于lisp编程语言实现&#xff…

Sparse Kernel Canonical Correlation Analysis

论文链接:https://arxiv.org/pdf/1701.04207 看这篇论文终于看懂核函数了。。谢谢作者

基于无人机边沿相关 ------- IBUS、SBUS协议和PPM信号

文章目录 一、IBUS协议二、SBUS协议三、PPM信号 一、IBUS协议 IBUS(Intelligent Bus)是一种用于电子设备之间通信的协议,采用串行通信方式,允许多设备通过单一数据线通信,较低延迟,支持多主机和从机结构&a…

SpringBoot集成kafka-监听器注解

SpringBoot集成kafka-监听器注解 1、application.yml2、生产者3、消费者4、测试类5、测试 1、application.yml #自定义配置 kafka:topic:name: helloTopicconsumer:group: helloGroup2、生产者 package com.power.producer;import com.power.model.User; import com.power.uti…

C++11详解 (右值引用、可变参数模板、emplace_back、lambda表达式、function、bind)

目录 简介 左值引用与右值引用 左值引用与右值引用是什么 左值引用与右值引用的比较 右值引用的使用场景与C11中STL的新变化 完美转发 新的类功能 可变参数模板 可变参数模板的应用——emplace_back lambda表达式 包装器 function bind 结语 简介 在过往&#xf…

UGUI空白可点击组件,减少重绘

如果使用image alpha 0,会导致overDraw,直接清空mesh,不绘制即可避免 #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; using UnityEngine.UI; namespace UnityGameFramework { [AddComponentMenu("Game/UI/GameEmpty4Raycast")] [Requir…

基于vue框架的毕业设计选题系统bqx47(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:学生,指导老师,课题信息,类型,选题信息 开题报告内容 基于Vue框架的毕业设计选题系统 开题报告 一、引言 毕业设计选题是高等教育中极为关键的一环,它不仅关乎学生未来研究的方向与深度,也是培养其创新思维和实…

Node.js-身份证号实名认证-小程序实名认证接口集成方法

使用身份证实名认证API之前,首先要确保已有一个可运行的开发环境,例如小程序或应用程序开发环境。这将是集成和测试API的基础。在应用中设计一个用户输入界面,用于用户输入姓名和身份证号码,同时设计提交按钮以触发验证流程。 在选…

Java 调用三方文件上传接口

Java 调用三方文件上传接口 url 为三方接口地址files为上传的文件信息,类型为File类型 // 构造MultiResource MultiResource multiResource new MultiResource(files.stream().map(multipartFile -> {try {return new InputStreamResource(Files.newInputStr…

SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞 1.什么是SSRF SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。 简单来说,假设你的网站有一个功能…

Linux的tmux命令使用

tmux ("terminal multiplexer"的简称), 是一款优秀的终端复用软件,tmux来自于openbsd,采用bsd授权。使用它最直观的好处就是, 通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台…

rk3568 npu opencv 怎么联系起来

问题: 客户一直再问 关于 3568 npu opencv 的编译内容。 大致了解一些 ,这方面的内容。 网上的资料。 也许这个基本上就是他的逻辑了, 首先界面使用QT来写。 然后,使用 opencv 去读取摄像头。 然后拿到一帧图像之后&#xff…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…

电脑U口管理软件分享|U口管理软件哪个好?

电脑U口&#xff08;即USB端口&#xff09;管理软件是保护电脑安全、防止数据泄露和恶意软件入侵的重要工具。 在选择U口管理软件时&#xff0c;需要考虑其功能、易用性、安全性以及是否满足个人或企业的具体需求。以下是一些值得推荐的电脑U口管理软件及其特点&#xff1a; 1…