wx.reLaunch和wx.navigateTo,wx.navigateTo的区别

wx.navigateTo 用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateBack可以返回到原页面。对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo进行跳转, 以便返回原页面,以提高加载速度。当页面特别多时,则不推荐使用。

wx.redirectTo 当页面过多时,被保留页面会挤占微信分配给小程序的内存,或是达到微信所限制的 5 层页面栈。这时,我们应该考虑选择 wx.redirectTo。wx.redirectTo()用于关闭当前页面,跳转到应用内的某个页面。这样的跳转,可以避免跳转前页面占据运行内存,但返回时页面需要重新加载,增加了返回页面的显示时间。

wx.reLaunch wx.reLaunch()与 wx.redirectTo()的用途基本相同, 只是 wx.reLaunch()先关闭了内存中所有保留的页面,再跳转到目标页面。

wx.switchTab 对于跳转到 tab bar 的页面,最好选择 wx.switchTab(),它会先关闭所有非 tab bar 的页面。其次,也可以选择 wx.reLaunch(),它也能实现从非 tab bar 跳转到 tab bar,或在 tab bar 间跳转,效果等同 wx.switchTab()。使用其他跳转 API 来跳转到 tab bar,则会跳转失败。

wx.navigateBack 用于关闭当前页面,并返回上一页面或多级页面。开发者可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。这个 API 需要填写的参数只有 delta,表示要返回的页面数。若 delta 的取值大于现有可返回页面数时,则返回到用户进入小程序的第一个页面。当不填写 delta 的值时,就默认其为 1(注意,默认并非取 0),即返回上一页面。

### 微信小程序 `wx.reLaunch` 方法详解 #### 功能描述 `wx.reLaunch` 是微信小程序提供的 API 接口之一,主要用于关闭所有页面并打开指定的应用内页面。此操作会清空当前页面栈,并将目标页面作为新的首页加载[^1]。 #### 参数说明 该函数接受一个对象类型的参数,其中主要配置项如下: - **url**: (String 类型) 需要跳转的目标页面路径,支持相对路径绝对路径;如果路径中包含查询字符串,则应遵循 URL 编码规则[^3]。 ```javascript // 示例:带有查询参数的URL编码方式 const queryParam = encodeURIComponent('some value'); wx.reLaunch({ url: `/pages/targetPage?param=${queryParam}` }); ``` #### 返回值 此方法不返回任何数据或状态码,执行完毕即完成页面重定向动作[^4]。 #### 实际应用场景 当应用程序希望完全替换现有页面堆栈时非常有用,比如用户登录完成后直接进入主页而不再保留之前的登录界面等场景下适用。 #### 注意事项 调用本接口后无法再通过常规手段(如点击左上角回退按钮)回到之前浏览过的页面,因此建议谨慎使用以避免影响用户体验。 #### 示例代码 下面给出一段简单的 JavaScript 代码片段来展示如何利用 `wx.reLaunch` 进行页面切换: ```javascript async function handleLoginSuccess(response){ try{ await someApiCall(); // 假设这里有一个异步请求用来验证登录信息 wx.reLaunch({ url: '../home/home', }); }catch(error){ console.error("Error during login process:", error); wx.showToast({ title: "登录失败", icon: 'none' }) } } ```
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值