当前位置: 首页 > news >正文

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

路由方法

  • 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: '来自详情页的数据'});}}
});

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 45.5【C语言】typedef
  • 设计模式(三)
  • ctfshow之web29~web51
  • 编译运行 llama.cpp (vulkan, Intel GPU SYCL)
  • 【数学分析笔记】第2章第4节收敛准则(1)
  • ES之二:centos7安装kibana和IK分词器
  • React的生命周期方法以及React 18之后的变化
  • 时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention
  • SMF05C.TCT TVS二极管阵列用于ESD和锁定保护芯片IC
  • github源码指引:C++嵌入式WEB服务器
  • JAVA面试题--ES
  • 切面条(蓝桥杯-基础)
  • 【通信协议】SPI总线
  • JVM - 1.类加载子系统
  • 工业相机错峰启动优化方案
  • 「译」Node.js Streams 基础
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Android系统模拟器绘制实现概述
  • Angular2开发踩坑系列-生产环境编译
  • Django 博客开发教程 16 - 统计文章阅读量
  • Fabric架构演变之路
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java方法详解
  • node和express搭建代理服务器(源码)
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 阿里云应用高可用服务公测发布
  • 动态规划入门(以爬楼梯为例)
  • 好的网址,关于.net 4.0 ,vs 2010
  • 计算机常识 - 收藏集 - 掘金
  • 简单易用的leetcode开发测试工具(npm)
  • 开发基于以太坊智能合约的DApp
  • 漂亮刷新控件-iOS
  • 什么是Javascript函数节流?
  • 我与Jetbrains的这些年
  • 译自由幺半群
  • ​linux启动进程的方式
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #单片机(TB6600驱动42步进电机)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (07)Hive——窗口函数详解
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)基于IDEA的JAVA基础12
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (轉貼) UML中文FAQ (OO) (UML)
  • .“空心村”成因分析及解决对策122344
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET 8.0 发布到 IIS
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别