Вы можете использовать только <icon-star></icon-star>
.
Вы не можете использовать <icon-star>
или <icon-star/>
, потому что он будет интерпретироваться как открывающий тег, а все содержимое после него будет интерпретироваться как дочерние узлы.
Это связано с тем, как инициализируются пользовательские элементы: как неизвестный элемент, поэтому синтаксический анализатор не может знать, пусты они (atomi c) или нет. Только стандартные элементы HTML могут иметь это свойство (<img>
, <br>
), потому что они уже известны на момент анализа.
customElements.define( 'icon-star', class extends HTMLElement {
connectedCallback() {
this.innerHTML = '*'
}
} )
OK: <icon-star></icon-star>
Fail: <icon-star/> Hello
Fail: <icon-star/>
Итак, на самом деле вы можете использовать синтаксис <icon-star>
только для открытия для последнего элемента страницы: -o