前段时间在工作过程中遇到了vue多表格渲染的问题,具体的需求就是在一个页面中动态渲染出多个不定长表头和内容的表格,由于自己刚接触vue不久,所以在这个把自己的解决记录下来,方便自己和有需要的人做一下参考。(注:这里我使用的是elementui的表格组件。)
在文章我将从最终实现效果、后台数据准备、实现思路以及代码片段等四个方面介绍:
-
最终效果图:
-
实现思路:
- 后台返回一个集合,集合中包含多个表格,每个表格包含两部分,动态表头数组以及动态对象表格数组;
- 渲染时,表格中动态表头信息和表格的内容分开渲染;
- 动态表头使用一个循环渲染出来即可,通过它的数量控制表格列数;而动态表格长度主要用来控制表格的行数;
- 表格中内容的获取是利用表格内容数据位置和表格头位置来定位的,即
data[index][key]
,其中index为遍历表格内容数据是的当前行所在的索引,而key为表格头当前的内容。(这里只是为了方便测试,head直接用的中文,你也可以使用对象数组存储表头信息,key-value形式)
-
后台数据准备:
[ { "columnHead":["考核内容-1","栏目-2"], "columnTitle":