我已经构建了一个带有一些命名插槽的自定义元素,如下所示:
<template>
<header>
<slot name="header"></slot>
</header>
<slot name="body"></slot>
<footer>
<slot name="footer"></slot>
</footer>
</template>
我像这样使用它:
<my-custom-element>
<div slot="header">
<h1>Title</h1>
<p>Description</p>
</div>
<div slot="body">
<h2>Body content</h2>
<p>Body content</p>
<p>Body content</p>
</div>
<div slot="footer">
<p>Copyright 2018</p>
<ul>
<li>Facebook</li>
<li>Twitter</li>
<li>Instagram</li>
</ul>
</div>
</my-custom-element>
但是,如您所见,这会导致我的 DOM 看起来像header > div > content
,footer > div > content
等等。
我想我可以使用 a template
element 而不是 adiv
来摆脱不必要的(有时是风格破坏)div
,不幸的是这似乎不起作用:
<my-custom-element>
<template slot="header">
<h1>Title</h1>
<p>Description</p>
</template>
<template slot="body">
<h2>Body content</h2>
<p>Body content</p>
<p>Body content</p>
</template>
<template slot="footer">
<p>Copyright 2018</p>
<ul>
<li>Facebook</li>
<li>Twitter</li>
<li>Instagram</li>
</ul>
</template>
</my-custom-element>
有没有办法将多个元素发送到一个插槽而不先包装它们?