微信小程序开发之路由切换页面重定向问题


Posted in Javascript onSeptember 18, 2018

这段时间开发了一个微信小程序,虽然小程序的导航API 官方文档写得很详细,但是在具体开发过程中还是会遇到很多不明白,或者一时转不过弯的地方。

1、页面切换传参,参数读取 

1.1  wx.navigateTo(Object)

功能:保留当前页面,跳转到应用内的某个页面,但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到当前页面。

wx.navigateTo({  //当前页面对应的JS文件内 控制模板
 url: 'test?id=1'  //需要切换到的页面路劲,此处为相对路劲,id为传递的参数
})
//test.js   //test页面对应的JS文件,名字必须相同
Page({ 
 onLoad: function(option){  //通过路由传递过来的参数,只能在onLoad方法内收到,option就是路由参数的一个组合对象
 console.log(option.id)
 }
})

1.2   wx.navigateBack(object)

功能:关闭当前页面,与 wx.navigateTo({ })功能相对。返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。

 

1.3  wx.redirectTo(object)

功能:关闭当前页面,跳转到应用内的某个页面【这里的跳转最好写绝对路劲,当然如果只是从当前页面往一个具体页面跳转(次数不多),相对路劲也可以。但如果是 wx.request(object) 请求返回状态进行页面跳转,那就最好写绝对路劲】,但是不允许跳转到 tabbar 页面。

1.4  wx.switchTab(Object object)

功能:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,与wx.redirectTo(object)方法功能互补。

 

1.5  wx.reLaunch(Object object)

功能:关闭所有页面,打开到应用内的某个页面【这种情况最好用绝对定位,因为是关闭所有页面,已经不需要知道当前所处页面了,直接重定向到某个具体页面。这种一般都是重定向到登录或者初始页面】

wx.reLaunch({  //token失效,界面重定向到登录页,绝对路劲
 url: "/pages/login/login",
});

2、相对路径和绝对路径

2.1、绝对路径;

以 “/” 开头代表根目录,

/pages/login/login

2.2、相对路径

以 “../” 开头,从当前页面一级一级往上级目录倒退

../../module/customer/main/main

或者:

以 “./” 开头,直接在当前目录

./registered

补充:下面看下微信小程序的路由跳转方法

路由跳转的方法

1.打开新页面

   1.wx.navigateTo   或使用组件     <navigator open-type="navigateTo"/>

      保留当前页面,跳转到应用内的某个页面,使用   wx.navigateBack  可以返回到原页面。

       属性用法:

          url:         类型是String     跳转非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
          success:     类型Function     接口调用成功的回调函数
          fail:        类型Function     接口调用失败的回调函数
          complete:    类型Function     接口调用结束的回调函数(调用成功、失败都会执行)

例 :

wx.navigateTo({
   url: 'test?id=1'
   })
  //test.js
  Page({
  onLoad: function(option){
   console.log(option.query)
  }
  })

     目前页面路径最多只能十层。

2.页面重定向

   1.wx.redirectTo    或使用组件     <navigator open-type="redirectTo"/>

       属性用法:

          url:         类型是String     跳转非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
          success:     类型Function     接口调用成功的回调函数
          fail:        类型Function     接口调用失败的回调函数
          complete:    类型Function     接口调用结束的回调函数(调用成功、失败都会执行)

例 :

wx.redirectTo({
   url: 'test?id=1'
   })
  //test.js

3.页面返回

   1. wx.navigateBack    或使用组件    <navigator open-type="navigateBack">

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

       属性用法:

          url:         类型是String     跳转非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
          success:     类型Function     接口调用成功的回调函数
          fail:        类型Function     接口调用失败的回调函数
          complete:    类型Function     接口调用结束的回调函数(调用成功、失败都会执行)

例 :

// 此处是A页面
 wx.navigateTo({
   url: 'B?id=1'
  })
  // 此处是B页面
 wx.navigateTo({
   url: 'C?id=1'
 })
 // 在C页面内 navigateBack,将返回A页面
 wx.navigateBack({
   delta: 2
 })
 })

4.Tab 切换

   1.wx.switchTab 或使用组件     <navigator open-type="switchTab "/>

       属性用法:

          url:         类型是String     需要跳转的 tabBar 页面的路径(需在 app.json 的 [tabBar]字段定义的页面),路径后不能带参数
          success:     类型Function     接口调用成功的回调函数
          fail:        类型Function     接口调用失败的回调函数
          complete:    类型Function     接口调用结束的回调函数(调用成功、失败都会执行)
例 :

{
  "tabBar": {
   "list": [{
    "pagePath": "index",
    "text": "首页"
   },{
   "pagePath": "other",
   "text": "其他"
   }]
   }
  }
 wx.switchTab({
   url: '/index'
 })

5.Tab 切换

   1.wx.reLaunch   或使用组件    <navigator open-type="reLaunch"/>

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

       属性用法:

          url:        需要跳转的应用内页面路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数
          success:     类型Function     接口调用成功的回调函数
          fail:        类型Function     接口调用失败的回调函数
          complete:    类型Function     接口调用结束的回调函数(调用成功、失败都会执行)

  例 :

wx.reLaunch({
    url: 'test?id=1'
  })
  //test.js
 Page({
   onLoad: function(option){
  console.log(option.query)
  }
 })

tip: wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面

总结

以上所述是小编给大家介绍的微信小程序开发之路由切换页面重定向问题 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
JavaScript入门教程(1) 什么是JS
Jan 31 Javascript
加速IE的Javascript document输出的方法
Dec 02 Javascript
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
Jul 21 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
jQuery轮播图实例详解
Aug 15 jQuery
使用vue实现多规格选择实例(SKU)
Aug 23 Javascript
基于JavaScript实现控制下拉列表
May 08 Javascript
在小程序中使用canvas的方法示例
Sep 17 #Javascript
webpack4打包vue前端多页面项目
Sep 17 #Javascript
node中的密码安全(加密)
Sep 17 #Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 #Javascript
浅谈webpack SplitChunksPlugin实用指南
Sep 17 #Javascript
vue的过滤器filter实例详解
Sep 17 #Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 #Javascript
You might like
php中目录,文件操作详谈
2007/03/19 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Python代码太长换行的实现
2019/07/05 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Python 如何查找特定类型文件
2020/08/17 Python
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
农民工创业典型事迹
2014/01/25 职场文书
运动会通讯稿400字
2014/01/28 职场文书
销售员岗位职责范本
2014/02/03 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
2014年内勤工作总结
2014/11/24 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
行政复议答复书
2015/07/01 职场文书
如何写好竞聘报告
2019/04/03 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Linux中文件的基本属性介绍
2022/06/01 Servers