Веб-компоненты ReactJS

Опубликовано: 16 Декабря, 2022

Что такое веб-компоненты?
Набор API-интерфейсов веб-платформы, которые позволяют нам создавать инкапсулированные теги HTML для использования на веб-страницах и в веб-приложениях. Веб-компоненты не требуют каких-либо специальных сторонних библиотек или фреймворков, но, безусловно, могут использоваться с ними. Следовательно, веб-компоненты можно использовать где угодно. Веб-компоненты можно использовать в React, Angular и т. д., они также включены в спецификацию HTML и являются нативными.

Какие существуют типы веб-компонентов?
Существует три типа веб-компонентов:

  • Пользовательские элементы.
  • Тень ДОМ.
  • HTML-шаблоны.

1. Пользовательские элементы

Шаги для создания пользовательского элемента:

  • Создайте класс, который расширяет HTMLElement, используя синтаксис класса
  • Зарегистрируйте элемент, используя метод window.customElements.define().

Методы жизненного цикла для пользовательских элементов:

  • конструктор(): этот метод обратного вызова вызывается при создании или обновлении экземпляра элемента.
  • connectedCallback(): этот метод обратного вызова вызывается каждый раз, когда элемент вставляется в DOM.
  • disabledCallback(): этот метод обратного вызова вызывается каждый раз, когда элемент удаляется из DOM.
  • acceptCallback(): этот метод обратного вызова вызывается всякий раз, когда пользовательский элемент перемещается в новый документ.
  • attributeChangedCallback(attributeName, oldValue, newValue): вызывается, когда атрибут добавляется, удаляется, обновляется или заменяется доступными нам методами, поэтому у нас есть конструктор.

Пример 1: В этом примере мы создали пользовательский элемент с тегом <test-element>.

Выход:

2. Теневой дом:

  • Используется для автономных компонентов.
  • Содержит стиль и разметку компонента.
  • Создает «shadowRoot», на который можно ссылаться позже, когда это необходимо.
  • Прикрепляется к элементу с помощью element.attachShadow({mode: open}).
  • Метод document.querySelector() не работает для узлов в ShadowDOM

Пример 2. В этом примере мы создали теневой DOM и прикрепили его к нашему пользовательскому элементу.

Выход:

HTML-шаблоны:

  • Шаблоны могут содержать как HTML, так и CSS.
  • Шаблоны могут быть определены в документе с помощью тега <template>.
  • Они используются для определения структур разметки.
  • Элемент <template> не отображается на странице, пока мы не прикрепим его к DOM с помощью JavaScript.

Пример 3. В этом примере мы создали собственный шаблон для отображения данных учащихся.

Выход:

Сторонние веб-компоненты, доступные:

  • Материальные веб-компоненты. Материальные веб-компоненты представляют собой версию веб-компонентов платформы Material UI, которая разработана и разработана Google.
  • Bootstrap в веб-компонентах: Bootstrap — это потрясающая среда CSS, которая позволяет вам быстро разработать красивый и отзывчивый веб-сайт, используя предварительно стилизованный компонент. Если вы хотите использовать Bootstrap в своем веб-компоненте на основе ShadowDom, вы должны включить загрузочный CSS в каждый компонент. Это можно сделать, просто используя тег <link> , ссылающийся на Bootstrap CSS в вашем ShadowDOM.
  • Elix: Elix — это открытый источник готовых к использованию веб-компонентов для распространенных шаблонов пользовательского интерфейса, таких как карусели, кнопки, меню и т. д. Вы также можете настраивать веб-компоненты, предоставляемые ELix, или даже создавать свои собственные веб-компоненты, расширяющие уже реализованные компоненты Elix.