[{id: 5, amount: 2, pool: 1, name: '王哲林} {id: 3, amount: 200, pool: 3, name: '贺希宁'} {id: 2, amount: 200, pool: 2, name: '史鸿飞'} {id: 1, amount: 100, pool: 1, name: '张宁'}]数组根据pool值得不同渲染分别渲染几个table表格的例子
时间: 2024-03-16 18:45:26 浏览: 50
好的,以下是一个根据pool值渲染不同table表格的例子代码:
```html
<div id="app">
<table v-for="(poolData, index) in dataByPool" :key="index">
<thead>
<tr>
<th colspan="2">Pool {{ index }}</th>
</tr>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, i) in poolData" :key="i">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
</tr>
</tbody>
</table>
</div>
```
在上面的代码中,我们首先根据数组中各项的pool值将数据分组,得到一个以pool值为键,以数据项为值的对象。然后,我们使用 `v-for` 指令遍历这个对象,渲染对应的table表格。其中,每个表格的标题为 `Pool` 后面跟着该表格的pool值,表格中的数据则是该pool值下的所有数据项。
下面是完整的Vue.js示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Table Rendering Example</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<table v-for="(poolData, index) in dataByPool" :key="index">
<thead>
<tr>
<th colspan="2">Pool {{ index }}</th>
</tr>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, i) in poolData" :key="i">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
</tr>
</tbody>
</table>
</div>
<script>
new Vue({
el: '#app',
data: {
items: [
{id: 5, amount: 2, pool: 1, name: '王哲林'},
{id: 3, amount: 200, pool: 3, name: '贺希宁'},
{id: 2, amount: 200, pool: 2, name: '史鸿飞'},
{id: 1, amount: 100, pool: 1, name: '张宁'}
]
},
computed: {
dataByPool() {
// 根据pool值将数据分组
return this.items.reduce((result, item) => {
const poolData = result[item.pool] || []
poolData.push(item)
result[item.pool] = poolData
return result
}, {})
}
}
})
</script>
</body>
</html>
```
运行这个示例代码,你会看到页面上渲染出了三个table表格,分别显示了pool值为1、2、3的数据项。
阅读全文