我正在写一页有几个手风琴可扩展的下降的页面。看起来是这样的:

展开后的每一步都会呈现不同的组件。例如,如果展开“步骤1”,它将加载StepOne.vue组件。
对于实际的手风琴代码,我在这里创建了一个组件:
Accordion.vue (模板)
<template>
<div id="accordion">
<div class="card">
<div class="card-header" :id="givenId">
<h5 class="mb-0">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
{{stepStr}} // step 1,2,3 -etc
</button>
</h5>
</div>
<div id="collapseOne" class="collapse show" :aria-labelledby="givenId" data-parent="#accordion">
<div class="card-body">
// I want to load a dynamic component here.
</div>
</div>
</div>
</div>
</template>我的问题是,我不知道如何使每个手风琴步骤加载不同的组件,而不复制粘贴每个步骤的整个手风琴html代码。
理想情况下,我希望它看起来像这样:
Display.vue
<template>
// Step 1
<accordion :id="step-1" :stepStr="'Step 1'">
<Step-One></Step-One>
</accordion>
// Step 2
<accordion :id="step-2" :stepStr="'Step 2'">
<Step-Two></Step-Two>
</accordion>
// Step 3
<accordion :id="step-3" :stepStr="'Step 3'">
<Step-Three></Step-Three>
</accordion>
</template>但这是一个无效的方法,或者至少,我不知道如何使它发挥作用。我还研究了将组件作为一种支柱传递给手风琴。但这似乎也不是一个有效的解决办法。
如何将组件传递给我的子手风琴组件,以便它能够正确地呈现每个“步骤”组件?
发布于 2019-11-20 03:17:34
你可以用插槽
<slot></slot> 在手风琴组件中,希望在手风琴标记之间显示代码。
<div id="collapseOne" class="collapse show" :aria-labelledby="givenId" data-parent="#accordion">
<div class="card-body">
<slot></slot> // I want to load a dynamic component here.
</div>
</div>https://stackoverflow.com/questions/58946047
复制相似问题