uniapp页面跳转的几种方式

Posted 措手不及ya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp页面跳转的几种方式相关的知识,希望对你有一定的参考价值。

uniapp页面跳转的几种方式


一、uni.navigateTo

  1. 定义:保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
  2. 使用:
// 1.不传参
uni.navigateTo(
    url:'./home/index'
);
// 2.传参字符串
uni.navigateTo(
    url:`./home/index?title=$title`
);
// 3.传参对象
// 传入
let data = 
    title:'hello',
    id: 1

uni.navigateTo(
	url:`./home/index?data=`+ encodeURIComponent(JSON.stringify(data))
)

// 接受参数
onLoad: function (option) 
    const item = JSON.parse(decodeURIComponent(option.item));

二、uni.redirectTo

  1. 定义:可以关闭当前界面并跳转到其他的非tabbar界面(可带参数)
  2. 使用:
uni.redirectTo(
  url:'./home/index'
);

三、uni.reLaunch

  1. 定义:关闭所有页面,打开到应用内的某个页面(可带参数)
  2. 使用:
uni.reLaunch(
    url:'./home/index'
);

四、uni.switchTab

  1. 定义:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
  2. 使用:
uni.switchTab(
   url:'./home/index'
);

五、uni.navigateBack

  1. 定义:关闭当前页面,返回上一页面或多级页面
  2. 使用:
uni.navigateBack(
    url:'./home/index'
);
uni.navigateBack(
	delta: 2
);

总结

navigateTo, redirectTo 只能打开非 Tab 页面,可传参。
switchTab 只能打开 Tab 页面,不可传参。
reLaunch 可以打开任意页面,可传参。

uniapp页面跳转的几种方法和区别

在讲它们的差异之前,我们先引入一个概念:页面栈

1. 栈是一种连续储存的数据结构,具有先进后出的性质。
2. 页面栈就是用来储存页面的栈,也有栈的特性。uniapp是通过页面栈来管理所有的页面,我们可以将页面栈理解为一个放页面的容器。每次跳转页面,都会从这个容器中添加或者删除页面。

1. 保留当前页面,可跳转到非 tabBar 页面,使用uni.navigateBack可以返回到原页面(可传参)

uni.navigateTo(
	url: 'test?id=1&name=uniapp'
);

2. 关闭当前页面,跳转到应用内的某个页面。不可打开tabbar页面 (可传参)

uni.redirectTo(
	url: 'test?id=1'
);

3. 关闭所有页面,打开到应用内的某个页面。可打开tabbar页面(可传参)

//页面会全部出栈,只留下新的页面
uni.reLaunch(
	url: 'test?id=1'
);

4. 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。(不可传参)

uni.switchTab(
	url: '/pages/index/index'
);

5. 关闭当前页面,返回上一页面或多级页面

uni.navigateBack(
	delta: 2 //返回的页面数
);

总结:

navigateTo, redirectTo 只能打开非 Tab 页面,可传参。
switchTab 只能打开 Tab 页面,不可传参。
reLaunch 可以打开任意页面,可传参。

可参考
uni-app页面跳转的不同方式及差异
uniapp中跳转页面的方法及差别:

以上是关于uniapp页面跳转的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

uniapp页面跳转的几种方法和区别

Javascript实现页面跳转的几种方式

实现前端页面跳转的几种方式

用js实现页面跳转的几种方式

页面跳转的几种方式

php中实现页面跳转的几种方式