vue 多了一层div,vue.js-如何将对象数组拆分为多个div列

Here is my vue layout:

.row

.col-4(v-for="article in articles") // need to render 1-3 items here

| {{ article.name }}

.row

.col-4(v-for="article in articles") // need to render 4-6 items here

| {{ article.name }}

export default {

name: 'Articles',

data() {

return {

articles: [

{ name: 'Article 1' },

{ name: 'Article 2' },

{ name: 'Article 3' },

{ name: 'Article 4' },

{ name: 'Article 5' },

{ name: 'Article 6' },

]

}

},

}

The Goal is:

article[0].name
article[1].name
article[2].name
article[3].name
article[4].name
article[5].name

In Python based Micro Framework like Flask and Jinja, it's possible to do in this way:

{% for article_row in articles | batch(3, ' ') %}

{% for article in article_row %}

{{ article }}

{% endfor %}

{% endfor %}

So, is there a way to do like above in vue.js?

解决方案

I would use helper groups array to render groups of articles in rows:

.container

.row(v-for="(group, i) in articleGroups")

.col-4(v-for="article in articles.slice(i * itemsPerRow, (i + 1) * itemsPerRow)")

| {{ article.name }}

export default {

name: 'Articles',

data() {

return {

itemsPerRow: 3,

articles: [

{ name: 'Article 1' },

{ name: 'Article 2' },

{ name: 'Article 3' },

{ name: 'Article 4' },

{ name: 'Article 5' },

{ name: 'Article 6' },

]

}

},

computed: {

articleGroups () {

return Array.from(Array(Math.ceil(this.articles.length / this.itemsPerRow)).keys())

}

},

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值