You need to enable JavaScript to run this app. Vaadin 20 Flow项目中如何从TS模板正确跳转服务端Java定义路由
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 20 Flow项目中如何从TS模板正确跳转服务端Java定义路由

纯Flow架构下TS模板跳转服务端路由解决方案

你不需要额外配置Fusion客户端路由,直接使用Vaadin Flow内置的客户端路由能力即可,有两种常用实现方案:


方案1:使用router-link属性(最简方案)

直接给你的<a>标签添加router-link属性,Flow客户端脚本会自动识别这类标签,拦截点击事件并走Flow内置的路由逻辑,不会触发全页刷新,完全兼容服务端@Route配置的路由:

// vaadin-nav.ts 模板部分示例
render() {
  return html`
    <nav class="custom-nav">
      <!-- 只需添加router-link属性,href和@Route的value保持一致即可 -->
      <a href="/about" router-link>关于页面</a>
      <a href="/home" router-link>首页</a>
      <a href="/user/list" router-link>用户列表</a>
    </nav>
  `;
}

方案2:调用内置导航API(灵活可控)

如果需要在跳转前做额外逻辑判断(比如权限校验、参数拼接),可以调用Flow暴露的全局导航方法:

// vaadin-nav.ts 逻辑示例
private handleNavToAbout() {
  // 可在这里添加自定义前置逻辑
  if (userHasPermission) {
    // 调用Flow内置导航方法,参数为服务端配置的路由路径
    window.Vaadin.Flow.navigate('/about');
  }
}

render() {
  return html`
    <button @click=${this.handleNavToAbout}>跳转到关于页</button>
  `;
}

注意事项

  • 路径需和Java代码中@Route(value = "xxx")的配置完全匹配,建议使用带前缀斜杠的绝对路径,避免嵌套路由场景下的路径错误
  • 无需引入Fusion Router相关依赖,也无需配置客户端路由表、路由出口,Flow会自动同步服务端注册的所有路由信息,内置逻辑会完成后续的视图渲染流程

内容的提问来源于stack exchange,提问作者Jens Jansson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 18:06:03