VueJs。是否可以通过另一个<slot>传递?

时间:2017-07-09 12:08:49

标签: vue.js vuejs2 vue-component

示例(jsfiddle): 我不会将<component-a>传递到<component-c>

中的“2”插槽中

//档案#1

<component-b>
    <component-a slot="... ? ..."></component-a>
</component-b>

我在文件#2中遇到问题。我不明白我如何将<component-a>通过<component-b>传递给组件中的slot ='two'。

带有<component-b>

//文件#2

<div>
    <components-c>
        // I was thinking to do it this way, 
        // but as I see It doesn't work:
        // <slot name='one' slot='one'></slot>
        // <slot name='two' slot='two'></slot>
    </components-c>
</div>

//文件#3 <component-c>

<components-c>
    <div id='one'>
        <slot name="one"></slot>
    </div>
    <div id='two'>
        <slot name="two"></slot>
    </div>
</components-c>

1 个答案:

答案 0 :(得分:0)

<slot>不可能成为父组件中另一个插槽的源(通过使用slot属性)。允许这样做意味着单个元素(即VNode)需要有多个slot值,以便在您向上移动节点树时将其呈现在其中。

这是不允许的:

<slot slot="one"></slot>

如果你将插槽首先包装在div中,它将会起作用:

<div slot="one">
  <slot name="one"></slot>
</div>

这是一个fiddle,其中包含您更新的示例。