上下文:Vaadin 21,Java 8。
在 Vaadin 21 示例应用程序(来自https://start.vaadin.com/app/)之上,我编写了自己RouterLayout
的导航栏,中间是正文,底部是页脚(作为MainLayout
示例中的交换应用)。
在导航栏中,我放了一个MenuBar
(https://vaadin.com/docs/latest/ds/components/menu-bar),其中包含一些RouterLink
s。
当用户单击RouterLink
s 中的一个时MenuBar
,整个页面都会刷新,并且 my 也RouterLayout
被重新实例化(= 调用构造函数)。
当我MenuBar
通过一个Tabs
组件(https://vaadin.com/docs/latest/ds/components/tabs)交换时,然后像以前一样单击RouterLink
只是交换正文中的内容RouterLayout
(如预期的那样)。
我在https://vaadin.com/docs/latest/ds/components/menu-bar知道这个提示,但我不知道为什么MenuBar
和之间有区别Tabs
:
菜单栏不应用于导航。使用选项卡在内容之间切换,或使用锚元素进行常规导航。
所以我的问题是:
- 为什么导航之间
MenuBar
和Tabs
导航之间存在差异(页面刷新),即使我RouterLink
在两种情况下都使用相同的代码进行创建? - 为什么
MenuBar
不应该用于导航? - 有没有办法在不刷新页面的情况下进行导航
MenuBar
?