【问题标题】:How do I use the same slot-element for all elements?如何对所有元素使用相同的插槽元素?
【发布时间】:2018-11-19 23:22:14
【问题描述】:

如果我有这样的插槽:

<span slot="?" slot-scope="data>...</span>

如果我想对所有事情都使用它,问号应该是什么?

【问题讨论】:

  • 就我而言没有办法做到这一点,您必须分别定义每个命名插槽的内容。您可以在数组中定义所有名称并循环遍历它们,但这仍然取决于每个插槽的名称,并且只会为您节省几行。
  • @PhilipFeldmann 好的,谢谢,我想我必须这样做。不过,这似乎是一个有用的功能。

标签: vue.js


【解决方案1】:

Vue 的当前状态不支持,在使用 JavaScript Proxy 类尝试破解此功能时也不支持,这是因为 Vue 的内部设计首先收集所有子项并将它们映射到一个对象,在将其传递给下一个组件之前。

您可以通过多次指定插槽内容来解决此问题,例如:

<!-- inside parent -->
<my-child>
    <p slot="head">Hello World</p>
    <p slot="body">Hello World</p>
</my-child>

或者修改孩子接受一个基本的插槽,如果一个插槽没有传入

<!-- inside child -->
<div>
    <slot name="head">
        <slot name="base/>
    </slot>
    <slot name="body">
        <slot name="base/>
    </slot>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2010-11-13
    相关资源
    最近更新 更多