el-table表头动态渲染未更新
问题
el-table的表头改为通过获取后端数据动态渲染,发现在请求接口后,表头并未重新渲染。
//html
<el-table :data="tableData">
<el-table-column v-for="(item,index) in tableCol" :key="index">
<template slot="header">{{item.colName}}</template>
<template slot-scope="scope">
{{scope.row[item.prop]}}
</template>
</el-table-column>
</el-table>
//js
tableCol:[
{
colName: '姓名',
prop: 'name'
},
{
colName: '年龄',
prop: 'age'
}
]
api.get('/tableColData').then(res=>{
this.tableCol = res.data
})
解决
给el-table-column绑定key时添加一个随机数拼接
<el-table-column v-for="(item,index) in tableCol" :key="Math.random()+index">
</el-table-column>
题外话
在循环生成数据项的时候,并不建议直接使用index项作为key,由于index都是从0开始,并不能作为唯一key,去方便vue跟踪变化进而重新渲染页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!