假设我的观点是:
@Route(value="test")
public class TestView extends VerticalLayout implements BeforeEnterObserver {
public TestView() {
super();
// do some stuff.
new Button("Test", click -> getUI().ifPresent(ui -> ui.navigate("test")));
}
@Override
public void beforeEnter(BeforeEnterEvent event) {
// do some other stuff.
}
}
如果我单击上面的 Test 按钮,则不会实例化构造函数,但是beforeEnter()
会调用该方法。在我的情况下,我更喜欢实例化整个视图类,因为该beforeEnter()
方法包含视图需要的一些逻辑和设置代码,如果调用两次可能会弄乱组件。特别是beforeEnter()
做一些检查,根据细节可能会调用不同的组件渲染路径。