挂钩从 Vaadin 14 开始的新 `UI`
Hook for a new `UI` starting in Vaadin 14
Vaadin 14 手册中的 Navigation Lifecycle 说:
It is also possible to register a standalone listener for this event using the addBeforeEnterListener(BeforeEnterListener)
method in UI
.
但是在具有路由功能的现代 Vaadin 中,我们不再应该编写 UI
子类。我的粗略理解是确实有一个UI
对象自动帮我们实例化,然后路由自动替换掉那个UI
对象里面的内容。所以 UI
对象的存在应该对我们使用 Vaadin Flow 的程序员来说是透明的。
➥ 那么什么是新 UI
实例的生命周期挂钩,以便我可以将用户身份验证检查编写为 BeforeEnterListener
以在我所有 @Route
视图中全局工作?
调用 UI.getCurrent
不会执行,因为我需要从我的布局中的某处调用它,但我正在尝试在 我的布局存在之前 注册一个侦听器.
要挂接到 UI init,有 UIInitListener
.
A UIInitListener
can be used to receive an event each time a new UI has been created and initialized.
The ideal place to add UIInitListeners would be inside a VaadinServiceInitListener
例如使用 Springboot:
@Bean
VaadinServiceInitListener vaadinServiceInitListener() {
return new VaadinServiceInitListener() {
@Override
public void serviceInit(ServiceInitEvent serviceInitEvent) {
serviceInitEvent.getSource().addUIInitListener( initEvent -> System.out.println("UI Init for " + initEvent.getUI()));
}
};
}
Vaadin 14 手册中的 Navigation Lifecycle 说:
It is also possible to register a standalone listener for this event using the
addBeforeEnterListener(BeforeEnterListener)
method inUI
.
但是在具有路由功能的现代 Vaadin 中,我们不再应该编写 UI
子类。我的粗略理解是确实有一个UI
对象自动帮我们实例化,然后路由自动替换掉那个UI
对象里面的内容。所以 UI
对象的存在应该对我们使用 Vaadin Flow 的程序员来说是透明的。
➥ 那么什么是新 UI
实例的生命周期挂钩,以便我可以将用户身份验证检查编写为 BeforeEnterListener
以在我所有 @Route
视图中全局工作?
调用 UI.getCurrent
不会执行,因为我需要从我的布局中的某处调用它,但我正在尝试在 我的布局存在之前 注册一个侦听器.
要挂接到 UI init,有 UIInitListener
.
A
UIInitListener
can be used to receive an event each time a new UI has been created and initialized.The ideal place to add UIInitListeners would be inside a
VaadinServiceInitListener
例如使用 Springboot:
@Bean
VaadinServiceInitListener vaadinServiceInitListener() {
return new VaadinServiceInitListener() {
@Override
public void serviceInit(ServiceInitEvent serviceInitEvent) {
serviceInitEvent.getSource().addUIInitListener( initEvent -> System.out.println("UI Init for " + initEvent.getUI()));
}
};
}