如何将静态组件附加到 Vue 中的动态组件?
How to append a static components to a dynamic ones in Vue?
我想要实现的是:我有一个 <v-window>
parent 组件需要 <v-window-item>
children。第一个 child 通过 Vuex getter 循环 returns 和 object 并根据其内容动态可视化卡片。但是,我有另一个类似于摘要的静态组件,其中包含一个注销按钮,我想将其附加到从商店生成的最后一个动态 <v-window>
上。到目前为止,这是我设置代码的方式:
<v-window v-model="reportPage">
<v-window-item v-for="card in getSelectedCard" :key="card.id">
</v-window-item>
</v-window>
有人可以指导我如何实现吗?提前致谢!
有 slots 可以帮助您。您只需向您的子组件添加一个 <slot></slot>
,然后您就可以将任何您喜欢的内容放入您的子标签中!
我认为有几种方法可以实现这样的事情,我会使用的一种是基于当前索引的条件渲染:
new Vue({
el: "#app",
data: {
someList: [ "first", "middle", "last" ]
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<ol>
<li v-for="(item, index) in someList">
{{ item }}
<span v-if="index === someList.length - 1">
- logout button component here
</span>
</li>
</ol>
</div>
当然我的v-if
的内容可以是你的v-window-item
的道具:
<v-window-item v-for="(card, index) in getSelectedCard" :key="card.id" show-logout-button="index === getSelectedCard.length - 1">
或者,如果您的 v-window-item
中有空位:
<v-window-item v-for="(card, index) in getSelectedCard" :key="card.id">
<logout-button v-if="index === getSelectedCard.length - 1" />
</v-window-item>
我想要实现的是:我有一个 <v-window>
parent 组件需要 <v-window-item>
children。第一个 child 通过 Vuex getter 循环 returns 和 object 并根据其内容动态可视化卡片。但是,我有另一个类似于摘要的静态组件,其中包含一个注销按钮,我想将其附加到从商店生成的最后一个动态 <v-window>
上。到目前为止,这是我设置代码的方式:
<v-window v-model="reportPage">
<v-window-item v-for="card in getSelectedCard" :key="card.id">
</v-window-item>
</v-window>
有人可以指导我如何实现吗?提前致谢!
有 slots 可以帮助您。您只需向您的子组件添加一个 <slot></slot>
,然后您就可以将任何您喜欢的内容放入您的子标签中!
我认为有几种方法可以实现这样的事情,我会使用的一种是基于当前索引的条件渲染:
new Vue({
el: "#app",
data: {
someList: [ "first", "middle", "last" ]
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<ol>
<li v-for="(item, index) in someList">
{{ item }}
<span v-if="index === someList.length - 1">
- logout button component here
</span>
</li>
</ol>
</div>
当然我的v-if
的内容可以是你的v-window-item
的道具:
<v-window-item v-for="(card, index) in getSelectedCard" :key="card.id" show-logout-button="index === getSelectedCard.length - 1">
或者,如果您的 v-window-item
中有空位:
<v-window-item v-for="(card, index) in getSelectedCard" :key="card.id">
<logout-button v-if="index === getSelectedCard.length - 1" />
</v-window-item>