Какая связь существует между Angular'sи ShadowDOM - PullRequest
5 голосов
/ 03 июля 2019

При сравнении Angular Content Projection с использованием <ng-content> с HTML-приложением ShadowDOM ( ShadowDOM Visualizer ) я обнаружил небольшую разницу.

На вышеупомянутой странице ссылок, когда я удаляю select атрибут <content> в теге <header>, затем все остальное содержимое присоединяется к компоненту заголовка.

Находясь в Angular, только элементы, не имеющие селектора, собираются и добавляются к шаблону <ng-content></ng-content>

У меня возникла техническая ностальгия при просмотре вышеуказанной ссылки.Итак, этот вопрос возник у меня в голове.

Примечание : я перенаправлен на эту ссылку из веб-основ Google Developer по Shadow DOM.

1 Ответ

4 голосов
/ 08 июля 2019

Спасибо за ваш вопрос!

Я думаю, что между Angular и ShadowDOM нет никакой связи по умолчанию.Если вы используете ViewEncapsulation.Emulated, для которого установлено значение по умолчанию, angular будет эмулировать ShadowDOM.Вы можете включить его с помощью ViewEncapsulation.Native, но только в браузерах, которые поддерживают эту функцию.

Вы можете проверить в этом примере с DevTools.Вы найдете эти странные _ngcontent-pmu-c51 атрибуты.Это способ, которым angular эмулирует ShadowDOM.

Надеюсь, я нашел ответ на ваш вопрос.Я с нетерпением жду ваших отзывов.

Более подробную информацию вы можете найти здесь:

Документация по коду

Хорошее сообщение в блоге опросмотр инкапсуляции

Аналогичный вопрос

Обновление:

Мы не имеем никакого отношения между угловым<ng-content> и ShadowDOM.Может быть, у них есть схожие понятия, но это максимум.

...