Vaadin 使用@Tag(Tag.DIV)注释和从DIV类扩展之间的区别
我正在学习瓦丁11,我有个问题。这两者之间的区别是什么:Vaadin 使用@Tag(Tag.DIV)注释和从DIV类扩展之间的区别,vaadin,vaadin10,vaadin-flow,Vaadin,Vaadin10,Vaadin Flow,我正在学习瓦丁11,我有个问题。这两者之间的区别是什么: public class MyClass extends Div { /... } …还有这个 @Tag(Tag.DIV) public class MyClass { /** } 根据文件: Div类: 表示元素的组件 标记注释: 定义用于使用默认组件构造函数创建的组件的根元素的标记 看起来他们做了同样的事情:创建一个类来表示根元素。是这样吗?两种方法都会在浏览器中为您提供一个元素(除了您需要将扩展组件添加到@Tag(Tag.
public class MyClass extends Div { /... }
…还有这个
@Tag(Tag.DIV)
public class MyClass { /** }
根据文件:
Div类:
表示
元素的组件
看起来他们做了同样的事情:创建一个类来表示根元素。是这样吗?两种方法都会在浏览器中为您提供一个
元素(除了您需要将扩展组件
添加到@Tag(Tag.DIV)
示例中)
区别在于
Div
类还专门为
元素定义了一些额外的API,而如果使用@Tag(Tag.Div)
创建一个通用组件
子类,则可以完全控制组件的公共API。区别在于服务器端API。Div
类本身非常简单,但它确实通过其父类实现了一些有用的mixin接口,如HasSize
和hastyle
。这意味着您可以调用myClass.setHeight(“500px”)
来扩展Div
另一方面,如果您使用@Tag
注释告诉您的MyComponent
类在客户端上有div
标记,那么除了您决定提供的以外,您不会公开任何服务器端方法。这是好事还是坏事取决于您希望向类的用户提供什么类型的特性