Угловые элементы - элемент Element.createShadowRoot - PullRequest
2 голосов
/ 05 июня 2019

Я тестирую Anuglar Elements для создания некоторых веб-компонентов и отлично работает.В любом случае, я получаю это предупреждение в консоли:

[Устаревание] Element.createShadowRoot устарело и будет удалено в M73, примерно в марте 2019 года. Вместо этого используйте Element.attachShadow.См. https://www.chromestatus.com/features/4507242028072960 для получения более подробной информации.

Связанный файл - platform-browser.js: 1182.Это то, что я должен знать?Как я могу это исправить?Должен ли я искать альтернативный способ создания своих веб-компонентов?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

В качестве состояния ошибки вы должны будете использовать

Вместо Element.attachShadow.

Пример:

class SomeElement extends HTMLElement {
    constructor() {
        super();
        this.attachShadow({mode: 'open'});
    }

    connectedCallback() {
        this.shadowRoot.innerHTML = 'Hello World!';
        console.log(this.shadowRoot);
    }
}

customElements.define('some-element', SomeElement);

Режим определяет, можете ли вы получить доступ к теневому корню через JavaScript.
Для {mode: 'closed'} код в connectedCallback не будет работать, поскольку this.shaodwRoot возвращает null.

0 голосов
/ 05 июня 2019

Согласно веб-документам MDN, эта функция будет полностью удалена.В любом случае он не поддерживается большинством веб-браузеров:

Нестандартный

Эта функция нестандартная и не соответствует стандарту,Не используйте его на рабочих сайтах, выходящих в Интернет: он не будет работать для каждого пользователя.Также могут быть большие несовместимости между реализациями, и поведение может измениться в будущем.

Устаревшее

Эта функция больше не рекомендуется.Хотя некоторые браузеры могут по-прежнему поддерживать его, он, возможно, уже удален из соответствующих веб-стандартов, может быть в процессе удаления или может храниться только в целях совместимости.Избегайте его использования и обновляйте существующий код, если это возможно;см. таблицу совместимости внизу этой страницы, чтобы принять решение.Имейте в виду, что эта функция может перестать работать в любое время.

Если вы используете Angular, я бы рекомендовал использовать Динамический загрузчик компонентов

...