Vue3 + element plus + ts 实现虚拟化表格(可展开附加信息)

需求:
Table V1中,当一屏里超过 1000 条数据记录时,就会出现卡顿等性能问题,体验不是很好。
通过 Table V2 的虚拟化表格组件,超大数据渲染将的到优化

展示:
在这里插入图片描述
代码: (可直接复制使用)

<template>
  <el-table-v2
    :columns="columnsData"
    :data="stateaData"
    :expand-column-key="columnsData[0].key"
    :width="700"
    :height="500"
  >
     <template #row='props'>
     //这里是改造了官网提供的方法
      <div v-if="(props.rowData.detail)">
        内容区域
      </div>
      <component v-else v-for='(cell ,index) in props.cells' :key='index' :is="cell"/>
    </template>
  </el-table-v2>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
setup(){
//模拟的数据
  const stateaData = 
    [
    //第一条数据
      { 
        id: 1, 
        userData:{
          value:1,
          workiceceName: "gj",
          workiceceValue: "内容2",
        },
        children: [
          {
            id: '1',
            detail: '1232' //决定你是否需要展开区域,
          }
        ]
      }, 
      //第二条数据
      {
        id: 2, 
        userData:{
          value:2,
          workiceceName: "gj",
          workiceceValue: "内容3",
        },
        children: [
          {
            id: '2',
            detail: '123'
          }
      ]}
  ]
  const columnsData =
    [
      {
        key: `userData.value`,
        dataKey: `userData.value`,
        title: `id标题`,
        width: 100,
      },
      {
        key: `userData.workiceceName`,
        dataKey: `userData.workiceceName`,
        title: `name标题`,
        width: 100,
      }
      ,
      {
        key: `userData.workiceceValue`,
        dataKey: `userData.workiceceValue`,
        title: `内容标题`,
        width: 100,
      }
    ]
 
    return {
      stateaData,
      columnsData
    }
  }
})
</script>

官网:
https://element-plus.gitee.io/zh-CN/component/table-v2.html#%E5%8F%AF%E5%B1%95%E5%BC%80%E7%9A%84%E9%99%84%E5%8A%A0%E4%BF%A1%E6%81%AF

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小王和他的小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值