Как создать LitElement без Shadow DOM?

Я создаю веб-компоненты с помощью LitElement. Это из https://lit-element.polymer-project.org/guide/start

// Import the LitElement base class and html helper function
import { LitElement, html } from 'lit-element';

// Extend the LitElement base class
class MyElement extends LitElement {

  /**
   * Implement `render` to define a template for your element.
   *
   * You must provide an implementation of `render` for any element
   * that uses LitElement as a base class.
   */
  render(){
    /**
     * `render` must return a lit-html `TemplateResult`.
     *
     * To create a `TemplateResult`, tag a JavaScript template literal
     * with the `html` helper function:
     */
    return html`
      <!-- template content -->
      <p>A paragraph</p>
    `;
  }
}
// Register the new element with the browser.
customElements.define('my-element', MyElement);

Как создать LitElement без Shadow DOM?

Я хочу создать его без #shadow-root здесь:
Как создать LitElement без Shadow DOM?

Вы пытались указать renderRoot? lit-element.polymer-project.org/api/classes/…

Caramiriel 12.03.2019 18:04
createRenderRoot() { return this;} решил!
user7331530 12.03.2019 18:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
26
2
8 483
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто чтобы убедиться, что этот вопрос отображается как ответ:

createRenderRoot позволяет переопределить операцию создания теневого корня. Обычно он используется для рендеринга в светлый дом:

createRenderRoot() {
  return this;
}

Хотя его можно было бы использовать для рендеринга в другом месте.

Я действительно рекомендую использовать теневой DOM. Композиция сложна, если элемент перезаписывает свой собственный легкий DOM.

Как еще вы предлагаете использовать Bootstrap или другую таблицу стилей для всего веб-сайта?

ryanafrish7 17.08.2020 20:51

В идеале ваши таблицы стилей разбиты на части, чтобы вы могли импортировать только те части, которые нужны каждому компоненту. Я бы обернул эти части в модули JS, чтобы их можно было автоматически загружать вместе с компонентами, связывать и т. д., а затем внедрять их в теневые корни.

Justin Fagnani 22.08.2020 19:56

кажется, что теневые корни нарушают поведение, видимое в фокусе.. весело

NullVoxPopuli 25.04.2021 03:29

Переопределение примечания createRenderRoot сделает недоступными теневые функции DOM, такие как инкапсулированный CSS и слоты. Тогда какой смысл использовать веб-компонент?

Tina Chen 24.07.2021 08:32

Веб-компонент @TinaChen позволяет вам разбивать код на компоненты, что почти всегда является улучшением, если вы еще не используете React/Vue/Angular и т. д. Вы по-прежнему получаете инкапсуляцию. Кроме того, если у вас уже есть огромная база кода с множеством правил CSS, может быть сложно преобразовать стили для использования освещенного CSS. И есть много других мелких проблем, которые усложняют внедрение теневого DOM. Мы живем не в идеальном мире.

Zhe 30.07.2021 15:28

Если у него нет теневого DOM, это пользовательский элемент, а не веб-компонент.

The Fool 18.09.2021 12:51

Другие вопросы по теме