Описание тега web-component
Веб-компоненты - это настраиваемые элементы, которые можно легко повторно использовать на странице и инкапсулировать их сценарии, шаблоны и стили.
Некоторым браузерам по-прежнему требуется один или несколько полифилов для работы с веб-компонентами.
веб-компонент предназначен для компонента, написанного изначально или с помощью любой библиотеки или фреймворка. native-web-component предназначен только для нативных компонентов.
Веб-компоненты полагаются на одну или несколько из следующих функций браузера:
Пользовательские элементы позволяют создавать определенные пользователем элементы с помощью класса ES6, который определяет их поведение и функциональность. Например, если вы хотите создать
<my-element>
(в соглашении об именах всегда используется не менее 1 дефиса) для класса с именемMyElement
вы могли бы позвонить:customElements.define('my-element', MyElement);
Пользовательские элементы - единственная необходимая часть веб-компонента.Shadow DOM позволяет разделу документа страницы быть новым, самодостаточным элементом. По умолчанию стили и сценарии не включаются и не выходят каскадом, а "теневой" DOM (написанный автором компонента) хранится отдельно от "легкого" DOM (написанного разработчиком с использованием компонента).
<slot>
предоставляет точку вставки для светлого содержимого.attachShadow()
позволяет<template>
быть предоставленным для HTML компонента.В
<template>
element позволяет использовать фрагмент разметки в качестве шаблона для добавления содержимого в DOM. Разметка вtemplate
элемент анализируется, но не отображается и не "запускается". Например, скрипты вtemplate
элемент не выполняются. С 2018 года веб-компоненты переходят от импорта HTML к модулям ES6 и<template>
element не так часто используется в компонентах на основе JavaScript.HTML-импорт был рекомендуемым механизмом для создания и загрузки веб-компонентов. Некоторые производители браузеров не поддерживают импорт HTML, и они не являются устаревшими и заменяются модулями ES6.
Модули ES6 в настоящее время являются рекомендуемым механизмом для загрузки веб-компонентов. Теперь ваш компонент создан в файле JavaScript и загружен с помощью
import
заявление.
Веб-компоненты являются клиентскими, но не все связаны с пользовательским интерфейсом. Например, веб-воркер и клиенты IndexedDB могут быть написаны как компоненты.