hostAttributes 和聚合物中的属性有什么区别?

What are difference between hostAttributes and properties in polymer?

我正在从 0.5 迁移到 1.0。

在阅读时,我注意到使用 hostAttributesproperties 两种不同的属性声明方式。

这两个有什么区别?

宿主属性是与元素对应的 Javascript 属性(您在 properties 中声明)不匹配的属性。这包括 classtabindexdata-* 属性、aria-roles 等属性。要在创建时声明它们,您必须在 hostAttributes 对象中设置它们。如果要将值绑定到它们中,则必须使用 $=(调用 Element.setAttribute)而不是 =.

来源:

如果自定义元素需要在创建时设置 HTML 属性,则可以在原型上的 hostAttributes 属性 中声明属性,其中键是属性名称,值是要分配的值。

但是现在,由于已从元素元数据中删除了 listeners 和 hostAttributes

我们可以使用 _ensureAttribute 作为替代方法来定义这些类型的属性

例如:-

this._ensureAttribute('tabindex', 0); 您可以在 ready

中声明所有此类属性