一.思路
- 首先我们肯定得循环表头,我们原生js封装的表格的实现原理就是这样。
- 其次我们要把自己循环的label显示出来,对应的prop也要和表格数据相对应。
- 用div标签循环都会出现错误(div里面套column),大家不要踩坑。第一项会跑到最后一项,去掉div即可。
二.代码
// html部分 用template循环也可以
<div class="tableDiv">
<el-table :data="tableData" height="250" border style="width: 100%">
<el-table-column
v-for="(col, index) in cols"
:key="index"
:prop="col.prop"
:label="col.label"
header-align="center"
width="155"
align="center">
</el-table-column>
</el-table>
</div>
// js部分 注意cols数据格式
data () {
return {
cols: [
{
label: "姓名",
prop: 'name'
},
{
label: "年龄",
prop: 'age'
},
{
label: "身高",
prop: 'clas'
},
{
label: "职业",
prop: 'job'
},
{
label: "工作经历",
prop: "jobs"
}
],
tableData: [
{
'name': "禹宝宝",
"age": "18",
"clas": "185",
"job": "三目运算符创始人",
"jobs": "vue4.0突出贡献者"
}
]
};
},
三.为什么div不行
prop和label是cols中的属性,也是el-table-column标签里设置的属性,放在div里就不是那个属性了,简单来说就是div中的prop和label与el-table-column没关联起来