navigateTo、redirectTo、switchTap与reLaunch的区别

2023-05-01 00:32:25 浏览数 (1)

wx.navigateTo:保留当前页,跳转到指定页,非tabBar;使用 wx.navigateBack 可以返回到当前的页面。

uni-app 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 要注意的是navigateTo只能跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数;如果跳转url参数为tabBar的路径则无法进行跳转

wx.redirectTo:关闭当前页,跳转到指定页,非tabBar;将无法回到当前页面。

关闭当前页面,跳转到应用内的某个页面。 需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数

wx.reLaunch:是关闭所有页面,跳转到指定页,非tabBar的页面。

关闭所有页面,打开到应用内的某个页面。 需要跳转的应用内页面路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',与redirectTo不同的是如果跳转的页面路径是 tabBar 页面则不能带参数

wx.switchTap:只能用于跳转到tabbar页面,并关闭其他非tabbar页面。

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 需要跳转的 tabBar 页面的路径,路径后不能带参数

注:tabBar 页面为需在 pages.json 的 tabBar 字段定义的页面 wx.navigateTo和wx.redirectTo只能跳转到非TabBar的页面路径; wx.navigateTo 跳转到应用中的某个页面,会保留当前页,使用wx.navigateBack可以返回原页面; wx.navigateTo跳转的页面路径层级最多5层; wx.navigateBack可以返回上一页面或多级页面。可通过getCurrentPages()获取当前页面栈,决定需要返回基层。

有时候跳转还需要携带参数,例如:

代码语言:javascript复制
wx.navigateTo({
        url: '/pages/item/item?name='   name,
 })

item页的取值的方式

代码语言:javascript复制
onLoad: function (options) {
    var that = this;
    that.setData({
      name: options.name,
    })
 }

0 人点赞