Shadow DOM被设计为用于构建基于组件的应用程序的工具。
但是如果我在React中使用基于组件的样式,这意味着每个组件只加载它自己的CSS文件,我还需要Shadow DOM的概念吗?
您的声明“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的需求和使用无关。