我有这样的伪 vue-js 循环:
var j = 0;
for(var i = 0; i < 100; i ++){
<item-component></item-component>
if(i % 10 === 0){
<component :is="'advertising-block-' + j"></component>
j ++;
}
}
如何覆盖到vue模板?
我需要在每十个项目之后显示不同的广告 block ,并且此类组件( block )的名称应该是:
advertising-block-0
advertising-block-1
...
advertising-block-10 (last one after 100th item).
最佳答案
可以用v-for
迭代100次,每第10个item显示一个广告组件(这个应该是常见的,取j
并显示相应的项目)使用v-if
:
const itemcomponent = Vue.component('itemcomponent', {
template: '#itemcomponent',
});
const advertisingblock = Vue.component('advertisingblock', {
template: '#advertisingblock',
props: ['id']
});
new Vue({
el:"#app",
components: { itemcomponent, advertisingblock }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<template id="itemcomponent">
<div>item</div>
</template>
<template id="advertisingblock">
<div>advertising-block-{{id}}</div>
</template>
<div id="app">
<div v-for="i in 100">
<div><itemcomponent/></div>
<div v-if="i%10===0"><advertisingblock :id="i/10"/></div>
</div>
</div>
关于vue.js - 模板 v-for 循环中的增量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66185533/