从 Vaadin (20) Flow 项目中的模板文件初始化路由器事件

Initialize router events from a template file in a Vaadin (20) Flow project

我有一个基于流的 Vaadin 20 应用程序。所有视图都写在Java中,路由设置在Java中。我想要一个更好的导航组件,所以我创建了一个 frontend TS template for my project,作为 frontend/src/vaadin-nav.ts。它有一堆 <a> 用于导航的元素。

我的问题是,我应该如何 link 正确地从模板到服务器端路由?我有例如AboutView.java@Route(value = "about", layout = MainView.class)。我如何在模板中说出“导航到 'about'”?我尝试检查 the Router instructions for Fusion,但他们要求我设置一个带有插座的客户端路由器对象。我不想那样做,因为我已经有一个 MainView.java 来设置路由和插座。

Vaadin 20 始终使用客户端 Vaadin 路由器。在具有流视图和服务器端 MainView.java 或类似应用程序的应用程序中,客户端路由器只是将所有路由决策委托给服务器并使用页面的根作为路由器出口。

客户端路由器拦截对本地 <a href> 链接的点击(例如,不链接到单独的主机名)并将这些点击视为路由器操作。如果没有客户端路由,则委托给服务器。

这意味着 <a href="about">About</a> 在您的 vaadin-nav.ts 文件中应该足够了。