javascript - 合成 LWC Shadow DOM 插槽与原生 shadow DOM 插槽

标签 javascript web-component shadow-dom salesforce-lightning lwc

LWC 合成影子 dom 似乎不像 native 影子 dom 实现那样处理插槽,例如

假设您从一个元素开始:

<hello-there><h1>Hi there</h1></hello-there>

然后附加影子dom并添加一个插槽,h1将被插入:

Normal shadow dom

现在,如果您在运行“@lwc/synthetic-shadow”时执行相同操作:“^1.1.1”

你得到:

synthetic shadow dom

有趣的是,它看起来也将 light dom 移动到了合成阴影根中。 有没有我应该调用的函数来让插槽正常运行?还是某种排序?

最佳答案

不幸的是,“合成 Shadow DOM”是一个 polyfill,它不能完全模仿真实( native )Shadow DOM 的行为(如 css 封装...或插槽)。

这就是为什么 <slot>元素出现在浅色 DOM 中:

  • 实际上没有 Shadow DOM(控制台中没有 #shadow-root)
  • shadowRoot然后属性是一个属性,它重定向到附加到轻型 DOM 的文档片段(请参阅 #document-fragment 而不是控制台中的 #shadow-root)。

关于javascript - 合成 LWC Shadow DOM 插槽与原生 shadow DOM 插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251524/

相关文章:

javascript - 在加载任何 html 元素之前加载图像

javascript - react native : Android is not showing all images (even though they are the same)

javascript - 在自定义元素阴影 DOM 中选择槽文本

css - 为什么 createshadowroot 给我的结果与 attachshadow 不同?

javascript - 在 Shadow DOM 中使用 JS 库

Chrome Inspector 中的 Javascript 调试 : variables are shown undefined in watches and console but can be inspected when hovered

javascript - jQuery/JavaScript 碰撞检测

javascript - litelement - 如何根据属性或属性值计算样式

web-component - Stencil.js - 监听宿主元素上的类属性更改

css - CSS Resets 应该如何应用于 Polymer 组件?