Skip to content

navigation

UniApp 页面路由与导航栏标题的 Promise 化封装。

环境要求

  • 运行于 UniApp 运行时
  • 全局 uni.navigateTouni.navigateBack 等导航 API 可用
  • 本模块直接调用全局 uni,不使用依赖注入

函数签名

typescript
interface NavigateToOptions {
  url: string
  success?: () => void
  fail?: (err: any) => void
  complete?: () => void
}

function navigateTo(options: NavigateToOptions): Promise<void>

参数

参数名类型必填说明
options.urlstring目标页面路径(可带 query)
options.success() => void跳转成功回调
options.fail(err: any) => void跳转失败回调
options.complete() => void完成回调(成功或失败均触发)

返回值

类型说明
Promise<void>跳转成功 resolve;失败 reject 并传递 UniApp 错误对象

函数签名

typescript
function navigateBack(delta?: number): Promise<void>

参数

参数名类型必填说明
deltanumber返回的页面层数,默认 1

返回值

类型说明
Promise<void>返回成功 resolve;失败 reject

switchTab

函数签名

typescript
function switchTab(url: string): Promise<void>

参数

参数名类型必填说明
urlstringTabBar 页面路径

返回值

类型说明
Promise<void>切换成功 resolve;失败 reject

reLaunch

函数签名

typescript
function reLaunch(url: string): Promise<void>

参数

参数名类型必填说明
urlstring目标页面路径;会关闭所有页面后打开

返回值

类型说明
Promise<void>成功 resolve;失败 reject

redirectTo

函数签名

typescript
function redirectTo(url: string): Promise<void>

参数

参数名类型必填说明
urlstring目标页面路径;当前页会被关闭

返回值

类型说明
Promise<void>成功 resolve;失败 reject

setNavigationBarTitle

函数签名

typescript
function setNavigationBarTitle(title: string): void

参数

参数名类型必填说明
titlestring导航栏标题文案

返回值

类型说明
void同步调用 uni.setNavigationBarTitle,无返回值

工作原理

  1. navigateTo 在 Promise resolve/reject 的同时,仍会触发 options 中传入的 success / fail / complete 回调,与原生 UniApp 行为一致。
  2. navigateBackswitchTabreLaunchredirectTo 将对应 uni.* 回调包装为 Promise,失败时 reject 原始错误。
  3. setNavigationBarTitle 为同步薄封装,直接透传至 uni.setNavigationBarTitle