小程序(uniapp)页面的跳转方式有哪些,他们之间的区别是什么?

1、uni.navigateTo: 保留当前页面,跳转到应用的某个页面,使用 uni.navigateBack 可以返回原页面。这种方式类似于网页的超链接跳转。

2、uni.redirectTo: 关闭当前页面,跳转大应用内的某个页面。这种方式类似于网页的重定向。

3、uni.switchTab: 跳转到tabBar页面,并关闭其他所有非tabBar页面。

4、uni.reLaunch: 关闭所有页面,打开到应用内的某个页面。

5、nui.navigateBack: 关闭当前页面,返回上一页或多级页面。

        这些跳转方式的主要区别在于他们对页面栈的处理方式不同。uni.navigateTo 会将新页面压入页面栈,而 uni.redirectTo 则不会打开新的页面,而 switchTab 和 reLaunch 、

        uni.switchTab 和 uni.reLaunch 则会关闭当前页面。uni.navigateBack 则会从页面栈中弹出当前页面,返回到上一页面或多级页面。

以下是这些跳转方式的代码示例:

// uni.navigateTo
uni.navigateTo({
	url: '/pages/example/example'
});

// uni.redirectTo
uni.redirectTo({
	url: '/pages/example/example'
});

// uni.switchTab
uni.switchTab({
	url: '/pages/example/example'
});

// uni.reLaunch
uni.reLaunch({
	url: '/pages/example/example'
});

// uni.navigateBack
uni.navigateBack({
	delta: 1
});

在使用这些跳转方式时,需要注意以下几点:

       1、页面栈最大深度为10,当超过10时,需要使用 uni.redirectTo 或 uni.reLaunch。

       2、uni.switchTab 只能用于跳转到 tabBar 页面,不能指定参数。

       3、uni.reLaunch 可以关闭所有页面,包括 tabBar 页面。

        4、uni.navigateTo 和 uni.redirectTo 的跳转方式都可以指定参数。参数可以通过 URL 的查询字符串(query string)来传递。

        以下是使用 uni.navigateTo 和 uni.redirectTo 指定参数的代码示例:

// uni.navigateTo
uni.navigateTo({
  url: '/pages/example/example?param1=value1¶m2=value2'
});

// uni.redirectTo
uni.redirectTo({
  url: '/pages/example/example?param1=value1¶m2=value2'
});

        在上述示例中,我们通过查询字符串 ?param1=value1¶m2=value2 将参数 param1 和 param2 传递给目标页面。在目标页面中,我们可以通过 this.$route.query 来获取这些参数。

你可能感兴趣的:(前端面试题,小程序,uni-app)