Wal*_*ner 6 javascript browser web-component shadow-dom
在shadow DOM v0中,开发人员不需要了解如何将light DOM内容放置在组件的阴影dom中的内部实现.
V0的规格相匹配的内置组件的当前行为像<select>和<option>在消费者不关心我在那里特别是它们的元素内容将被放置.相反,shadow DOM会自动选取与标记select属性中指定的选择器匹配的元素,<content>并将它们放在阴影树内的正确位置.消耗开发人员的代码需要较少的样板.
在v1中,您需要具体了解插槽名称.模仿前面提到的相同示例<select>,我需要使用类似<option slot="option">插槽属性值指定放置当前元素的位置的内容.我也可以添加那些不打算包含在那个插槽中的元素<table slot="option">.
总之,我的担忧是:
在阴影DOM v1中有一种方法可以获得<content select="option"></content>孩子必须匹配特定选择器的旧行为,还是被丢弃?如果没有,有谁知道为什么特别是这么大的突破性改变?
例1(v0规范)
的index.html
<my-component>
<my-child-component>Text</my-child-component>
<wrong-child-component>Wrong</wrong-child-component>
</my-component>
Run Code Online (Sandbox Code Playgroud)
component.html(shadow DOM)
<div>
<content select="my-child-component"></component>
</div>
Run Code Online (Sandbox Code Playgroud)
结果DOM
<my-component>
#shadow-root
<div>
<my-child-component>Text</my-child-component>
</div>
<my-component>
Run Code Online (Sandbox Code Playgroud)
例2(v1规范)
的index.html
<my-component>
<my-child-component slot="child-slot">Text</my-child>
<wrong-child-component slot="child-slot">Wrong</wrong-child-component>
</my-component>
Run Code Online (Sandbox Code Playgroud)
component.html(shadow DOM)
<div>
<slot name="child-slot"></slot>
</div>
Run Code Online (Sandbox Code Playgroud)
结果DOM
<my-component>
#shadow-root
<div>
<my-child-component>Text</my-child-component>
<wrong-child-component>Wrong</wrong-child-component>
</div>
<my-component>
Run Code Online (Sandbox Code Playgroud)
因为v1没有其他替代品slot(据我所知)。但我仍然没有看到问题所在。就像content您也可以使用无名插槽一样。
<!-- element template -->
<dom-module id="my-el">
<template>
...
<h2>
<slot name="title"></slot>
</h2>
<div>
<slot></slot>
</div>
</template>
</dom-module>
...
<!-- usage -->
<my-el>
<span slot="title">Mr. Darcy</span>
<span>Fun at parties.</span>
</my-el>
Run Code Online (Sandbox Code Playgroud)
这是github 上的讨论之一,讨论建议使用 slot over content,并仅列出 slot over content 的一些优点
默认插槽与默认插入点。在 v0 中,默认插入点(没有 select 属性的插入点)会消耗与前一个插入点不匹配的所有节点。在 v1 中,默认槽(没有名称属性的槽)仅匹配没有槽属性的内容。换句话说,具有槽属性的节点永远不会分配到默认槽。
尽管它相对于内容也没有什么缺点,但至少现在供应商已经同意老虎机是前进的方向。
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |