Authentication 瓦丁14中的LoginForm与LoginOverlay
Vaadin 14提供了以下两种实现:Authentication 瓦丁14中的LoginForm与LoginOverlay,authentication,widget,vaadin,vaadin-flow,Authentication,Widget,Vaadin,Vaadin Flow,Vaadin 14提供了以下两种实现: ➥ 有什么区别 ➥ 为什么我应该使用一个而不是另一个 每个项目的Javadoc描述都是相同的,没有任何差异的迹象。的component catalog页面显示了这两个方面的示例,但没有提到区别 我从的源代码中看到,LoginForm不仅仅是AbstractLogin。相比之下,LoginOverlay添加了更多的方法。有些只是装饰,如标题。但是有些更神秘,比如initEnsureDetachListener,以及使用UI.getCurrent检查非
我从的源代码中看到,
LoginForm
不仅仅是AbstractLogin
。相比之下,LoginOverlay
添加了更多的方法。有些只是装饰,如标题。但是有些更神秘,比如initEnsureDetachListener
,以及使用UI.getCurrent
检查非法状态
我很好奇为什么
LoginOverlay
需要比LoginForm
更多的方法。我不仅想在我的应用程序中提供登录功能,而且想了解更多关于使用登录小部件作为示例或模型制作自己的复合组件的信息。摘自Github页面:
Vaadin登录包含两个组件:
是提供无痛登录体验的Web组件,是Vaadin组件的一部分组件显示覆盖层内部的
。
是一个Web组件,提供一个表单,要求用户登录到应用程序。
因此,如果您希望在覆盖图中显示登录表单,您应该使用LoginOverlay
组件。就我个人而言,我将其视为LoginForm
之上的包装器,您可以将其作为独立组件添加
编辑:
对于其他方法,如close
、setOpened
、setDescription
和setTitle
,添加这些方法是为了处理覆盖和其他属性,这些属性不在LoginForm
元素中
(用于LoginOverlay
的web组件)是
的包装,它在覆盖中打开一个登录表单,并为应用程序标题和说明添加一个品牌部分
LoginOverlay
是一个包装器(您可能认为它像一个装饰器模式),在现有的LoginForm
之上添加了额外的功能
关于
initEnsureDetachListener
,这是一个私有方法,可以确保在组件关闭(分离)的情况下,它也会从UI中删除。(当调用setOpened
时,会将其添加到其中)
而且
注意:如果不是手动添加,覆盖将自动从DOM附加或分离
创建了一个Github票证,并在官方文档中对其进行了详细说明:那么在Vaadin中什么是“覆盖”?我什么时候/为什么要使用覆盖层?我不认为瓦丁强加了覆盖层常用的任何其他含义:位于其他元素之上。在这个特定的情况下,这个定义是最合适的:在网站中的代码>,覆盖是一个图形内容框,出现在页面的中间,模糊背景内容。< /代码>,当你想要一个LogNebug(这是登录覆盖内的内容)在每页/视图/组件的顶部时,你会使用它。(如第一个示例所示)请参阅今天对我的问题所做的编辑。我指出了
LoginForm
和loginoverplay
initEnsureDetachListener
在源代码中的一些神秘区别,它是一个私有方法,用于确保一旦元素关闭,覆盖就从DOM中分离。添加的所有这些方法都是为了操作覆盖本身(像开和关)。