开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > 框架 > 小程序页面 > router
贡献者
收藏
订阅更新
我的文档
设置
页面路由器对象,有 switchtab、 relaunch 、redirectto、 navigateto、 navigateback 五个方法。可以通过 this.pagerouter 或 this.router 获得当前页面或自定义组件的路由器对象。 与同名的全局方法 my.switchtabmy.relaunchmy.redirecttomy.navigatetomy.navigateback 功能相同,唯一区别在于页面路由器中的方法调用时,相对路径是相对于 this 指代的页面或自定义组件。通常情况下,更推荐使用 this.pagerouter 和 this.router 进行路由跳转。 基础库 2.7.22 开始支持,若版本较低,建议做 兼容 处理。
页面的 router
在页面中调用时,this.pagerouter 和 this.router 获得的是同一个页面路由器对象(即 this.pagerouter === this.router),将相对于 this 指代的页面进行路由跳转。
自定义组件的 router
在自定义组件中调用时,this.router 将相对于 this 指代的自定义组件自身定义时的路径进行路由跳转。 this.pagerouter 将相对于 this 指代的自定义组件所在页面的路径进行路由跳转。自定义组件的 this.pagerouter 和自定义组件所在页面的 this.pagerouter  获得的是同一个页面路由器对象。
路由的相对路径
this
this.router
this.pagerouter
页面
相对于 this 指代的页面的路径
相对于 this 指代的页面的路径
自定义组件
相对于 this 指代的自定义组件自身定义时的路径
相对于 this 指代的自定义组件所在页面的路径
使用说明
由于插件和宿主的权限管控,由插件(插件自定义组件或插件页面)发起的路由跳转,无论是使用页面路由器对象 router 上的路由方法还是全局对象 my 上的路由方法,均不支持跳转到宿主小程序页面或另一个插件页面。
由于插件和宿主的权限管控,当插件自定义组件被用在宿主小程序或另一个插件中时,该插件自定义组件的 this.pagerouter 为 null。
如果在页面 a 通过 redirectto、relaunch、navigateback 方法跳转到页面 b,页面 a 会被销毁,在销毁后的页面 a 调用 this.pagerouter 或 this.router 的路由方法不会生效。
示例代码
项目目录结构如下所示。
假设当前页面(栈顶页面)路径为 pages2/index/index,分别在页面 page/index/index 和 自定义组件 components/com/com 中调用路由方法 my.navigateto、this.pagerouter.navigateto、this.router.navigateto 进行路由跳转,跳转结果如下:
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图