Ваше утверждение «Shadow DOM разработан как инструмент для создания компонентных приложений».является неточным и должно быть «Shadow DOM предназначен для инкапсуляции DOM и CSS». Я могу использовать Shadow DOM без написания одного компонента, и я могу написать компонент без Shadow DOM.
React - это одна из многих сред, которые делают свои собственные компоненты для своего типа компонентов.Но это не устраняет цель Shadow DOM.
Стандартные элементы HTML используют Shadow DOM.Такие элементы, как <video>
и <audio>
являются отличными примерами.Вы не видите, что находится внутри Shadow DOM, и вам не нужно.
Если бы больше разработчиков компонентов использовали <audio>
и <video>
в качестве примеров того, как писать небольшие, повторно используемые компонентытогда все будет лучше вместе.Но часто разработчики хотят превратить всю свою страницу в один компонент, и это не лучший способ написания кода.
React, Vue, Angular и другие имеют свой способ создания компонентов и страниц.Используют ли они Shadow DOM или нет, это не имеет отношения к необходимости и использованию Shadow DOM.