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

属性类型默认值说明
replacebooleanfalsetrue 时使用 redirectTo 替换当前页面
typenavigateTo | 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 显式指定时,优先使用指定的导航方式。

相关

使用手册:前往了解页面中间件