开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1395|回复: 0
收起左侧

[技术分享] uniapp路由跳转

[复制链接]
发表于 2021-9-30 09:47:31 | 显示全部楼层 |阅读模式   广东省揭阳市

uni.navigateTo
保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面
  1. //在起始页面跳转到test.vue页面并传递参数
  2. uni.navigateTo({
  3.     url: 'test?id=1&name=uniapp'
  4. });
复制代码
uni.redirectTo
关闭当前页面,跳转到应用内的某个页面。
  1. uni.redirectTo({
  2.     url: 'test?id=1'
  3. });
复制代码
uni.reLaunch
关闭所有页面,打开到应用内的某个页面。
  1. uni.reLaunch({
  2.     url: 'test?id=1'
  3. });
复制代码
uni.switchTab
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
  1. uni.switchTab({
  2.     url: '/pages/index/index'
  3. });
复制代码
uni.navigateBack
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层
  1. uni.navigateBack({
  2.     delta: 2
  3. });
复制代码



技术拓展

后台自定义小程序内部页面跳转
uniapp有一个原生Tab路由切换,这个时候的路由是通过uni.switchTab才能够实现跳转的。
有时候我们会遇到一些情况,就是自定义跳转小程序内部的指定页面,链接是通过后台配置的,那这个时候我们无法指定是常规单页面还是tab页面,这个时候封装一个兼容的路由跳转就很有必要了,下面举个栗子
  1. goto(url) {
  2.                 console.log("getCurrentPages().length======保留当前页面", getCurrentPages().length);
  3.                 if (!url || url == '') {
  4.                         return
  5.                 }
  6.                 uni.navigateTo({
  7.                         url: url,
  8.                         fail: (fail) => {
  9.                                 // 导航标签切换
  10.                                 if (fail.errMsg.indexOf('tab bar page') != -1 || fail.errMsg.indexOf('tabbar page') != -
  11.                                         1 || fail.errMsg.indexOf('non-tab pages') != -1) {
  12.                                         uni.switchTab({
  13.                                                 url: url
  14.                                         })
  15.                                 }
  16.                         }
  17.                 })
  18.         },
复制代码
在当前页面修改上一个页面的数据
  1. setPagesData(name, data, back = false) {
  2.                 let pages = getCurrentPages();
  3.                 // var currPage = pages[pages.length - 1]; //当前页面
  4.                 let prevPage = pages[pages.length - 2]; //上一个页面

  5.                 //h5的写法
  6.                 prevPage[name] = data;

  7.                 //小程序的写法 具体要怎么写可以打印一下prevPage看一下
  8.                 // #ifdef APP-PLUS
  9.                 prevPage.$vm[name] = data;
  10.                 // #endif
  11.                 if (back) {
  12.                         uni.navigateBack();
  13.                 }
  14.         },
复制代码








您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表