2

我正在学习 Vaadin Flow (Vaadin v10),并且对 Route(@Route 作为注释)和 RouterLayout 的概念有困难。

从我已经在 Vaadin 网站上阅读的文档中!我无法确定特定问题的答案。

实现RouterLayout的类也可以定义为@Route吗?

@Route("")
public class MainLayout extends Div implements RouterLayout {
}

请(如果可能)提供对某些文档的参考。据我了解, aRouterLayout旨在呈现其中的视图。因此,如果需要public void showRouterLayoutContent(HasElement content),可以重写方法以创建所需的布局。因此,放置本质上定义视图的@Route 注释与RouterLayout 混合没有意义?

或者是吗?如果RouterLayout可以和@Route注解一起使用,说明layout也是一个视图;有些人可以为我提供一个简单的场景,这在哪里有用?

4

1 回答 1

0

@Route就像你说的那样 - 在概念层面上,RouterLayout在同一个课程中同时拥有两者似乎很奇怪。@Route注释放置在叶节点上。您可以有一个独立@Route的,它将被放置在<body>元素中,或者您可以有一个嵌套布局,其中路线显示在一个或多个父布局内。可以使用注解的第二个参数指定父布局,例如

@Route(value = "users", layout = Dashboard.class)
public class Users extends Div {
//...

,哪里Dashboard需要实现RouterLayout。所以你可以访问这条路线,http://server-address-here/users它会显示Users在里面Dashboard

如果您想要一个更具描述性的 URL,您可以使用以下@RoutePrefix注释来实现它Dashboard

@RoutePrefix("dashboard")
public class Dashboard extends VerticalLayout implements RouterLayout { 
// ...

现在你Users可以从那里看到风景,http://server-address-here/dashboard/users否则一切都会和以前一样。

于 2019-04-01T08:19:55.500 回答