在教程中我只看到了 Shadow DOM 的优点,但应该也有缺点。在哪些情况下我们应该避免使用 Shadow DOM?
最佳答案
Shadow DOM 功能既可以看作优点也可以看作缺点:
样式隔离 如果您需要它是一个好处,但如果用户想要使用来自全局 CSS 样式表的 Shadow DOM 来设置组件的样式,它就是一个缺点。
DOM Shadowing 在某些情况下是一个优势,但如果外部脚本/库或扩展需要解析或选择内容,则是一个缺点。
有许多第 3 方库(或扩展)不能处理 Shadow DOM 内容,因为它们不是为处理它而设计的,或者需要一些额外的配置才能处理 Shadow DOM。
例子:
此外,解析 HTML 的扩展程序将在 Shadow DOM 边界被阻止:如果您不想被窥探,这是一个好处,如果您认为它们是一项有用的服务,则是一个缺点。
事件传播 在 Shadow DOM 内部和外部是不同的。因此,您在处理 UI 事件时可能会遇到一些困难。
示例:
结论
仅当您需要 CSS 样式或 DOM 隔离时才使用 Shadow DOM。
如果您需要与一些不兼容的第三方组件或库进行交互,请不要使用 Shadow DOM。
关于javascript - 使用 Shadow DOM 有什么缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917672/