假设我正在为Vue开发一个增强的popper.js,我即将给它一些额外的功能。这是非常(子)组件的样子:
<popper>
<div :is="tag" class="popper">
{{ content }}
</div>
<button class="btn btn-primary" slot="reference">
Reference Element
</button>
</popper>
正如您所看到的,要使其工作,需要使用slot =“reference”属性在“.popper”div下方定义引用元素。
问题:
如何将 enhanced-popper 组件转换为可重用的实体,也就是说能够间接传递时隙数据 - 来自
<enhanced-popper> //referenced element// </enhanced-popper>
以便它在子(popper.js)组件中有slot =“reference”属性?
什么行不通:
使用插槽并在父组件传入的组件中具有该属性不会产生所需的结果,因为它根本不会被渲染。
<popper>
<div :is="tag" class="popper">
{{ content }}
</div>
<slot></slot>
</popper>
为确保拥有该属性,我还尝试将子组件中的所述按钮替换为插槽内的命名插槽,并在我的 enhanced-popper :
<slot name="reference">
<slot></slot>
</slot>
这样第一个分段组件具有属性 - 并且几乎有效,但是因为有两个“槽层”(不知道如何调用它) ,引用的组件不是第一个作为子元素,并且popper被错误定位。
干杯, 帕