el-table简洁之道

说明

环境:vue2 + elementui2.15.14

正常写el-table时,像官方示例一样:

javascript 复制代码
<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期"></el-table-column>
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>
<script>
export default {
  data() {
    return {
      tableData: [
        {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄'
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 弄'
        }
      ]
    }
  }
}
</script>

那么,如果tableData中再有一个data字段,且data字段里又包含其他字段需要展示呢,像下面这样:

javascript 复制代码
{
  date: '2016-05-03',
   name: '王小虎',
   address: '上海市普陀区金沙江路 1516 弄',
   data: {
     sex: '雄性',
     age: 18,
     money: '100万',
   }
 }

新增加的这几个字段,你是这样写的吗

javascript 复制代码
 <el-table-column label="性别">
   <template v-slot="scope">{{ scope.row.data.sex }}</template>
 </el-table-column>
 <el-table-column label="年龄">
   <template v-slot="scope">{{ scope.row.data.age }}</template>
 </el-table-column>
 <el-table-column label="财富">
   <template v-slot="scope">{{ scope.row.data.money }}</template>
 </el-table-column>

这样写有2个弊端

  • 不够简洁
  • 如果哪条数据没有data这个字段,那么会报错

建议写法如下

javascript 复制代码
<el-table-column prop="data.sex" label="性别"/>
<el-table-column prop="data.age" label="年龄"/>
<el-table-column prop="data.money" label="财富"/>
相关推荐
NotFound4866 分钟前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Dontla29 分钟前
高基数(High Cardinality)问题介绍(Prometheus、高基数字段、低基数字段)
前端·数据库·prometheus
一 乐2 小时前
医院挂号|基于springboot + vue医院挂号管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医院挂号管理系统
whuhewei3 小时前
为什么客户端不存在跨域问题
前端·安全
妮妮喔妮3 小时前
supabase的webhook报错
开发语言·前端·javascript
qq_12084093713 小时前
Three.js 大场景分块加载实战:从全量渲染到可视集调度
开发语言·javascript·数码相机
yivifu4 小时前
手搓HTML双行夹批效果
前端·html·html双行夹注
奔跑的卡卡4 小时前
Web开发与AI融合-第一篇:Web开发与AI融合的时代序幕
前端·人工智能
IT_陈寒4 小时前
Redis批量删除的大坑,差点让我加班到天亮
前端·人工智能·后端
帆张芳显5 小时前
智表ZCELL产品V3.6 版发布,新增系统预置右键菜单操作、页签栏操作等功能
前端·canva可画·excel插件