vue代码 循环list实体类取值放入生成的表格中,每14个生成一个表格
时间: 2023-06-16 10:05:00 浏览: 95
你可以使用计算属性来实现这个需求。假设你的实体类为`Item`,需要循环的列表为`list`,每14个生成一个表格,你可以这样写代码:
```html
<template>
<div>
<table v-for="(tableData, index) in tableDataList" :key="index">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, itemIndex) in tableData" :key="itemIndex">
<td>{{ item.column1 }}</td>
<td>{{ item.column2 }}</td>
<td>{{ item.column3 }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ column1: 'A1', column2: 'B1', column3: 'C1' },
{ column1: 'A2', column2: 'B2', column3: 'C2' },
{ column1: 'A3', column2: 'B3', column3: 'C3' },
{ column1: 'A4', column2: 'B4', column3: 'C4' },
{ column1: 'A5', column2: 'B5', column3: 'C5' },
{ column1: 'A6', column2: 'B6', column3: 'C6' },
{ column1: 'A7', column2: 'B7', column3: 'C7' },
{ column1: 'A8', column2: 'B8', column3: 'C8' },
{ column1: 'A9', column2: 'B9', column3: 'C9' },
{ column1: 'A10', column2: 'B10', column3: 'C10' },
{ column1: 'A11', column2: 'B11', column3: 'C11' },
{ column1: 'A12', column2: 'B12', column3: 'C12' },
{ column1: 'A13', column2: 'B13', column3: 'C13' },
{ column1: 'A14', column2: 'B14', column3: 'C14' }
]
};
},
computed: {
tableDataList() {
const result = [];
let temp = [];
this.list.forEach((item, index) => {
temp.push(item);
if ((index + 1) % 14 === 0 || index === this.list.length - 1) {
// 每14个一组或者已经到了最后一个元素
result.push(temp);
temp = [];
}
});
return result;
}
}
};
</script>
```
这里定义了一个计算属性`tableDataList`,它会将`list`中的数据按照每14个一组的方式分成多组,然后返回一个列表,列表中的每个元素是一个包含14个元素的子列表。在模板中,使用`v-for`循环这个列表,每次循环生成一个表格,表格中的数据使用`v-for`从子列表中取出。
阅读全文