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

小程序——路由API

路由API

    • 1、wx.switchTab(Object object)
    • 2、wx.rewriteRoute(Object object)
    • 3、wx.reLaunch(Object object)
    • 4、wx.redirectTo(Object object)
    • 5、wx.navigateTo(Object object)
    • 6、wx.navigateBack(Object object)
    • 7、EventChannel
    • 8、router.addRouteBuilder(string routeType, function routeBuilder)

1、wx.switchTab(Object object)

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

参数:Object object

属性类型默认值必填说明
urlstring需要跳转的 tabBar 页面的路径 (代码包路径)(需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数。
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
// app.json{"tabBar":{"list":[{"pagePath":"index","text":"首页"},{"pagePath":"other","text":"其他"}]}}
wx.switchTab({url:'/index'})

2、wx.rewriteRoute(Object object)

重写正在进行中的路由事件,详见 路由重写。

参数:Object object

属性类型默认值必填说明
urlstring重写目标页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’
preserveQuerybooleanfalse是否直接保留当前路由事件的参数,默认为 false;开启时,url 里面传入的参数会被丢弃
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
wx.onBeforeAppRoute(res=>{if(res.path==='/pages/do/not/access/me'){wx.rewriteRoute({url:'/pages/index/index'})}})

3、wx.reLaunch(Object object)

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

参数:Object object

属性类型默认值必填说明
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
wx.reLaunch({url:'test?id=1'})

4、wx.redirectTo(Object object)

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

参数:Object object

属性类型默认值必填说明
urlstring需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
wx.redirectTo({url:'test?id=1'})

5、wx.navigateTo(Object object)

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

属性类型默认值必填说明
urlstring需要跳转的应用内非 tabBar 的页面的路径 (代码包路径), 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’
eventsObject页面间通信接口,用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。
routeTypestring2.29.2 自定义路由类型,相关文档 自定义路由
routeConfigObject3.4.0 自定义路由配置,相关文档 自定义路由
routeOptionsObject3.4.0 自定义路由参数,相关文档 自定义路由
withOpenContainerObject3.12.2 skyline 下指定路由动画所用OpenContainerContext,相关文档 OpenContainerContext
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success回调函数:

参数:Object res

属性类型说明
eventChannelEventChannel和被打开页面进行通信
wx.navigateTo({url:'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:'test'})}})
//test.jsPage({onLoad:function(option){console.log(option.query)consteventChannel=this.getOpenerEventChannel()eventChannel.emit('acceptDataFromOpenedPage',{data:'test'});eventChannel.emit('someEvent',{data:'test'});// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据eventChannel.on('acceptDataFromOpenerPage',function(data){console.log(data)})}})

6、wx.navigateBack(Object object)

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。

参数:Object object

属性类型默认值必填说明
deltanumber1返回的页面数,如果 delta 大于现有页面数,则返回到页面栈中只剩一个页面为止。
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码// 此处是A页面wx.navigateTo({url:'B?id=1'})// 此处是B页面wx.navigateTo({url:'C?id=1'})// 在C页面内 navigateBack,将返回A页面wx.navigateBack({delta:2})

7、EventChannel

页面间事件通信通道。

  • EventChannel.emit(string eventName, any args)
    触发一个事件
  • EventChannel.on(string eventName, EventCallback fn)
    持续监听一个事件
  • EventChannel.once(string eventName, EventCallback fn)
    监听一个事件一次,触发后失效
  • EventChannel.off(string eventName, EventCallback fn)
    取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数

8、router.addRouteBuilder(string routeType, function routeBuilder)

添加自定义路由配置。

  • string routeType:路由类型
  • function routeBuilder:路由动画定义函数
// 定义自定义效果,从右侧推入constslideRouteBuilder=(customRouteContext)=>{const{primaryAnimation}=customRouteContextconsthandlePrimaryAnimation=()=>{'worklet'consttransX=windowWidth*(1-primaryAnimation.value)return{transform:`translateX(${transX}px)`,}}return{handlePrimaryAnimation}}wx.router.addRouteBuilder('slide',slideRouteBuilder)// 使用自定义路由wx.navigateTo({url:'xxx',routeType:'slide'})
http://www.jsqmd.com/news/461444/

相关文章:

  • 解决vscode里面Gemini Code Assist插件无法使用的问题!!!
  • 【pfg】
  • ubuntu mujoco安装好以后如何通过python那个它
  • 20260310_170257_渗透测试人员守则:基础知识
  • OpenClaw 从 0 到 1:本地部署 + 飞书机器人(避坑实战)
  • python2自动打卡脚本
  • Minio分布式集群+nginx+keepalived部署
  • 前端八股文面经大全:字节跳动前端二面部分(2026-01-13)·面经深度解析
  • 为什么PHP的浮点数运算(如0.1+0.2)结果不是精确的0.3?IEEE浮点数标准是如何表示小数的?
  • OpenClaw 在 Windows 系统下的完整安装部署指南
  • 2026年3月东莞试验箱厂家靠谱推荐:恒温恒湿、交变湿热热、两箱式冷热冲击、三箱式冷热冲击、盐雾试验箱,艾博仪器解锁东莞试验箱优质之选 - 海棠依旧大
  • 2026实测|8款封神PPT工具,AI博主私藏,职场/学生/技术党直接抄作业
  • GESP / CSP-J入门讲解:题目的 题意分析 + C++题解
  • 2026软考资料,看这一篇就够了
  • 数字遗体化妆师:给去世程序员的代码做美容
  • python字符串、列表介绍
  • 为什么同一个类中方法互调,@Transacational会失效
  • ARM处理器指令系统——指令流水线(下,指令流水线的发展简介、影响流水线性能的因素)
  • 学鸿蒙开发好找工作吗?—— 百万人才缺口,引爆黄金职业风口
  • 国内GitHub镜像站搭建全攻略
  • 20260310_165916_网络安全:全网最全渗透测试指南,让你彻底看懂系统漏洞
  • 回归疫情预测
  • 深度学习卷积神经网络车牌识别系统
  • SQLAlchemy 高级批量插入笔记(标量子查询 + 显式参数绑定)
  • 类和动态内存分配(在构造函数中使用new 时应注意的事项)
  • Java常用API之String类
  • 图解最常用的 10 个机器学习算法!线性回归、逻辑回归、决策树、随机森林...
  • 喊着“全面拥抱AI”,可我连从哪下手都不知道——一位制造业软件工程师的真心话
  • 找当下口碑好的卡式风机盘管公司?2026年这些受认可,卧式暗装风机盘管/工业暖风机,卡式风机盘管批发厂家怎么选择 - 品牌推荐师
  • Druid 1.2.28发布,多项性能优化升级