Vaadin Listener 服务器端 vs Element-API,首选用例是什么?

Vaadin Listener Server-side vs Element-API, what are the prefered use-cases?

添加例如按钮的点击侦听器(据我所知)在 Vaadin 中有两种方式:

1. button.addClickListener(clickEvent -> ...);
2. button.getElement().addEventListener("click", event -> ...);

第一个使用大量的 Vaadin 代码来注册一个新的侦听器,returns一个注册对象和一个具有许多便利功能(获取点击坐标等)的 ClickEvent 对象

第二个将点击事件直接注册到元素和 returns 一个 DomListenerRegistration 对象(与 Registration 相比看起来很混乱)。据我了解,此解决方案更灵活(您可以使用所有浏览器事件,您可以选择除“事件已触发”之外要提取的信息)并且更时尚。如果我有任何错误,请纠正我。

那么这两种变体的典型用例是什么?它们的优点或缺点是什么?

以我的愚见,只要它具有我需要的所有功能,我就会选择便利功能 (1.),只有在我需要更多灵活性或想要获得最佳性能时才使用第二个版本。

如果你有正常的 Vaadin Button,那么你真的应该使用这个

button.addClickListener(clickEvent -> ...);

为按钮添加点击监听器。

元素 API 是低级别 API,您希望在实现自己的自定义组件并需要侦听客户端事件(尤其是自定义事件)的情况下使用它等等