goTo
创建页面重定向结果
goTo() 用于创建页面重定向结果,通常在路由中间件中通过 return 返回。
声明
goTo(to: string | RouteLocation, options?: GoToOptions): NavigationResult
参数
to
可以传入页面路径字符串:
return goTo("/pages/index/index");
也可以传入包含查询参数的路由对象:
return goTo({
path: "/pages/search/result",
query: {
keyword: "uni-app",
page: 1,
},
});
最终目标地址为 /pages/search/result?keyword=uni-app&page=1。
options
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
replace | boolean | false | 为 true 时使用 redirectTo 替换当前页面 |
type | navigateTo | redirectTo | reLaunch | switchTab | 自动判断 | 指定 UniApp 导航方式 |
普通页面默认使用 navigateTo,重定向到 TabBar 页面时自动使用 switchTab。
return goTo("/pages/login/login", {
type: "reLaunch",
});
示例
export default defineRouteMiddleware((to) => {
if (!uni.getStorageSync("token") && to.path !== "/pages/login/login") {
return goTo("/pages/login/login", {
replace: true,
});
}
});
只调用
goTo() 不会触发重定向,必须将结果通过 return 返回给中间件流程。行为
- 重定向目标会重新执行目标页面的中间件;
replace: true等价于使用redirectTo;type显式指定时,优先使用指定的导航方式。