navigation
UniApp 页面路由与导航栏标题的 Promise 化封装。
环境要求
- 运行于 UniApp 运行时
- 全局
uni.navigateTo、uni.navigateBack等导航 API 可用 - 本模块直接调用全局
uni,不使用依赖注入
navigateTo
函数签名
typescript
interface NavigateToOptions {
url: string
success?: () => void
fail?: (err: any) => void
complete?: () => void
}
function navigateTo(options: NavigateToOptions): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.url | string | 是 | 目标页面路径(可带 query) |
options.success | () => void | 否 | 跳转成功回调 |
options.fail | (err: any) => void | 否 | 跳转失败回调 |
options.complete | () => void | 否 | 完成回调(成功或失败均触发) |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 跳转成功 resolve;失败 reject 并传递 UniApp 错误对象 |
navigateBack
函数签名
typescript
function navigateBack(delta?: number): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
delta | number | 否 | 返回的页面层数,默认 1 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 返回成功 resolve;失败 reject |
switchTab
函数签名
typescript
function switchTab(url: string): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | TabBar 页面路径 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 切换成功 resolve;失败 reject |
reLaunch
函数签名
typescript
function reLaunch(url: string): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 目标页面路径;会关闭所有页面后打开 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 成功 resolve;失败 reject |
redirectTo
函数签名
typescript
function redirectTo(url: string): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 目标页面路径;当前页会被关闭 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 成功 resolve;失败 reject |
setNavigationBarTitle
函数签名
typescript
function setNavigationBarTitle(title: string): void参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
title | string | 是 | 导航栏标题文案 |
返回值
| 类型 | 说明 |
|---|---|
void | 同步调用 uni.setNavigationBarTitle,无返回值 |
工作原理
navigateTo在 Promise resolve/reject 的同时,仍会触发options中传入的success/fail/complete回调,与原生 UniApp 行为一致。navigateBack、switchTab、reLaunch、redirectTo将对应uni.*回调包装为 Promise,失败时 reject 原始错误。setNavigationBarTitle为同步薄封装,直接透传至uni.setNavigationBarTitle。