例如,在Vaadin中,有两种方法(据我所知)为按钮添加点击监听器:
1. button.addClickListener(clickEvent -> ...);
2. button.getElement().addEventListener("click", event -> ...);第一个使用了大量的Vaadin-Code来注册一个新的监听器,返回一个register对象,并且有一个ClickEvent-object,它有许多方便的函数(获取点击坐标等)。
第二个方法将单击事件直接注册到元素,并返回一个DomListenerRegistration对象(与注册相比,它看起来很混乱)。据我所知,这个解决方案更灵活(你可以使用所有的浏览器事件,你可以选择你想要提取的信息,除了“事件被解雇”)和更流畅。如果我在任何一点上错了,请纠正我。
那么这两种变体的典型用例是什么呢?它们的优点或缺点是什么?
以我的浅见,我会选择便利性函数(1)。只要它有我需要的所有功能,只有当我需要更多的灵活性或当我想要获得最大的性能时,才使用第二个版本。
发布于 2021-09-30 13:01:28
如果你有普通的Vaadin Button,那么你真的应该使用这个
button.addClickListener(clickEvent -> ...);要将侦听器添加到按钮,请单击该按钮。
Element API是低级API,如果您正在实现自己的自定义组件,需要监听客户端事件,尤其是自定义事件等,则可以使用它。
https://stackoverflow.com/questions/69392097
复制相似问题