Что такое теневой элемент просто для HTML? - PullRequest
0 голосов
/ 07 мая 2020

ниже приведен образец js для теневого элемента

    class SliderImages extends window.HTMLDivElement {
      constructor (...args) {
        const self = super(...args)
        self.init()
        return self
      }

      init () {
        this.$ = $(this)
        this.props = this.getInitialProps()
        this.resolveElements()
      }

      getInitialProps () {
        let data = {}
        try {
          data = JSON.parse($('script[type="application/json"]', this).text())
        } catch (e) {}
        return data
      }

      resolveElements () {
        this.$slider = $('[data-slider]', this)
        this.$buttonNext = $('[data-slider-button="next"]', this)
        this.$buttonPrev = $('[data-slider-button="prev"]', this)
      }

      connectedCallback () {
        this.initSlider()
      }

      initSlider () {
        const { options } = this.props
        const config = {
          navigation: {
            nextEl: this.$buttonNext,
            prevEl: this.$buttonPrev
          },
          a11y: options.a11y
        }
        if (options.autoplay && options.autoplaySpeed) {
          config.autoplay = {
            delay: options.autoplaySpeed
          }
        }
        this.slider = new Swiper(this.$slider, config)
      }
    }

    window.customElements.define('flynt-slider-images', SliderImages, { extends: 'div' })

Я не понимаю, почему используется теневой элемент и в чем преимущество их использования. а когда я собираюсь использовать теневой элемент, какая нужна специальная библиотека JS? Если кто-нибудь, пожалуйста, объясните мне просто и ясно, я благодарен

1 Ответ

1 голос
/ 15 мая 2020

Пользовательские элементы позволяют создавать, повторно использовать и распространять ваши собственные веб-компоненты без встроенных Javascript. Нет необходимости в сторонней структуре.

Прочтите эту презентацию от Google: https://developers.google.com/web/fundamentals/web-components/customelements


Shadow DOM позволяет изолировать стиль CSS ваших веб-компонентов , чтобы контролировать их отображение и избегать нежелательных побочных эффектов при отображении на неуправляемых веб-страницах.

Прочтите это введение от Google: https://developers.google.com/web/fundamentals/web-components/shadowdom

...