javascript - 使用 VueJS 和 Skeleton CSS 在 3 个项目迭代后创建新行
问题描述
每次我对数组的 3 项以上进行 v-for 时,我都会尝试创建一行。
我也在使用 Skeleton CSS。现在,只有 3 个项目的结构如下所示:
<div class="row">
<div class="one-third column" v-for="item in items">
<custom-component item="item"></custom-component>
</div>
</div>
现在,我意识到我应该在行元素上而不是在第一列上执行 v-for,但我应该如何迭代?使用v-if="index % 3 === 0"
?这只是为了验证我们是否在第 3 次迭代中。
有任何想法吗?
谢谢。
解决方案
你可以做这样的事情;用于Math.ceil(items.length / 3)
计算保存items
, 循环遍历行所需的行数,对于每一行循环遍历该行的项目,即items.slice(3 * (rowIdx - 1), 3 * rowIdx)
.
<div class="row" v-for="rowIdx in Math.ceil(items.length / 3)">
<div class="one-third column" v-for="item in items.slice(3 * (rowIdx - 1), 3 * rowIdx)">
<custom-component :item="item"></custom-component>
</div>
</div>
推荐阅读
- python - 将值附加到列表列表
- c# - 如何在 C# 控制台应用程序中将修饰符(ctrl、alt、shift)按键捕获为单个按键?
- regex - 使用正则表达式在 Visual Studio Code 中设置片段
- psql - psql 到 sqlcmd 选项
- c# - c#在postgresql数据库中为数据正确编码
- processing - 景深:结合点着色器和模糊着色器(处理 3)
- google-apps-script - 如何将作为用户登录的文件上传到应用程序创建者的驱动器?
- python - Flask:更新的行数
- linux - 如何排队多个程序按顺序运行?
- listview - 无法在 Flutter 中添加 ListView