小程序开发中的路径跳转实现技巧

算法架构师 2021-05-05 ⋅ 19 阅读

在小程序开发中,页面之间的跳转是一个非常常见的需求。小程序的路径跳转方式相较于传统的网页开发有一些不同,本文将介绍一些小程序开发中的路径跳转实现技巧,帮助开发者更好地掌握小程序的页面跳转功能。

1. 页面路径

在小程序中,页面路径是类似于文件路径的字符串,用于标识页面的位置。小程序的路径分为相对路径和绝对路径两种:

  • 相对路径:相对路径是相对于当前页面的路径,使用相对路径进行跳转时,小程序会在后台自动添加当前页面的路径前缀。

  • 绝对路径:绝对路径是从小程序根目录开始算起的路径,在跳转时需要指定完整的路径。

2. 页面跳转方式

小程序提供了多种页面跳转方式,开发者可以根据不同的需求选择合适的方式进行跳转:

  • wx.navigateTo:保留当前页面,跳转到应用内的指定页面。新页面打开后,上一个页面仍然存在于页面栈中,可以通过返回按钮返回到上一个页面。

  • wx.redirectTo:关闭当前页面,跳转到应用内的指定页面。新页面打开后,上一个页面会被销毁,不能返回到上一个页面。

  • wx.switchTab:跳转到应用内的指定 tabBar 页面,并关闭其他所有非 tabBar 页面。只能跳转到 tabBar 页面。

  • wx.reLaunch:关闭所有页面,打开应用内的指定页面。

  • wx.navigateBack:关闭当前页面,返回上一个页面或多级页面。

3. 页面传参

在页面跳转过程中,有时候需要将参数传递给目标页面,以满足不同页面之间的交互需求。小程序提供了一些方法来实现页面的传参功能:

  • 在路径中传参:可以在页面路径中使用 ? 将参数拼接到路径中,例如 /pages/detail/detail?id=1,目标页面可以通过 this.options.id 来获取传递的参数值。

  • 使用 wx.setStorageSync:可以使用 wx.setStorageSync 将参数存储在本地缓存中,跳转到目标页面后通过 wx.getStorageSync 来获取传递的参数值。

  • 使用全局变量:可以将参数存储在全局变量中,跳转到目标页面后通过全局变量来获取传递的参数值。

4. 页面返回传参

有时候需要在页面返回时将参数传递给上一个页面或多级页面。小程序提供了一些方法来实现页面的返回传参功能:

  • navigateBack 中返回参数:可以在 navigateBack 的第二个参数中携带一个对象作为返回参数,例如 wx.navigateBack({delta: 1, success: function(res){res.param = 'value'}}),上一个页面可以通过 res.param 来获取返回的参数值。

  • 使用 wx.setStorageSync:可以在当前页面中使用 wx.setStorageSync 将参数存储在本地缓存中,在上一个页面中通过 wx.getStorageSync 来获取返回的参数值。

  • 使用全局变量:可以将参数存储在全局变量中,在上一个页面通过全局变量来获取返回的参数值。

5. 页面栈管理

小程序的页面跳转是基于页面栈实现的,页面栈类似于栈的数据结构,采用先进后出的原则。了解页面栈的管理方式可以帮助开发者更好地掌握页面的跳转逻辑:

  • 普通跳转方式 navigateToredirectTo 都会将新页面加入页面栈中。

  • wx.switchTab 会关闭所有非 tabBar 页面,然后将目标页面加入页面栈。

  • wx.reLaunch 会关闭所有页面,然后将目标页面加入页面栈。

  • 跳转到 tabBar 页面时,如果目标页面已经在页面栈中,则会将目标页面之前的页面从页面栈中移除。

结语

以上是小程序开发中的一些路径跳转实现技巧,包括页面路径的使用、页面跳转方式的选择、页面传参和页面返回传参的方法、页面栈的管理方式等。希望本文能够帮助开发者更好地掌握小程序的路径跳转功能,提升小程序开发效率。

参考资料:


全部评论: 0

    我有话说: