Vue3 Element Plus 表格默认显示一行

方法一:使用 empty-text 属性

html 复制代码
<el-table :data="tableData" empty-text="暂无数据">
  <!-- 列定义 -->
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
</el-table>

方法二:使用空数组并设置默认行

javascript 复制代码
import { ref } from 'vue';

const tableData = ref([{}]); // 默认包含一个空对象
html 复制代码
<el-table :data="tableData">
  <!-- 列定义 -->
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
</el-table>

方法三:自定义空状态插槽

html 复制代码
<el-table :data="tableData">
  <!-- 列定义 -->
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
  
  <template #empty>
    <el-table-row>
      <el-table-column :span="2">暂无数据</el-table-column>
    </el-table-row>
  </template>
</el-table>

方法四:始终显示一行(即使数据为空)

javascript 复制代码
import { ref, computed } from 'vue';

const realData = ref([]); // 实际数据
const tableData = computed(() => {
  return realData.value.length > 0 ? realData.value : [{}];
});

注意事项

  1. 如果使用空对象作为默认行,表格中的列可能会显示为空白

  2. 对于需要特殊样式的默认行,可以通过 row-class-name 属性添加自定义类名

  3. 如果需要在默认行中添加特定的占位文本,可以在列定义中使用插槽

    html 复制代码
    <el-table-column prop="name" label="姓名">
      <template #default="{ row }">
        {{ row.name || '-' }}
      </template>
    </el-table-column>
相关推荐
YHHLAI33 分钟前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
weixin_BYSJ19871 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
沪飘大军2 小时前
ll-llm:一个零依赖、可插拔的 OpenAI 兼容 LLM 代理
javascript
leoZ2312 小时前
Claude 驱动的全栈开发:Spring Boot + Vue 的 BS 架构实践
vue.js·spring boot·架构
山河木马3 小时前
GPU自动处理专题3-NDC怎么映射成屏幕像素坐标(视口变换)
javascript·webgl·图形学
Appthing5 小时前
在 TanStack Start 中使用 VitePWA 的正确配置
javascript
前端炒粉6 小时前
手写promise
java·前端·javascript
mONESY6 小时前
Node.js fs 文件系统模块 四种读写方案全解析
javascript·后端
Larcher6 小时前
从回调地狱到优雅异步:Node.js 文件操作进化史
javascript·后端·架构
荒诞英雄6 小时前
从 17MB Vendor 大包到按需加载:Vite 多入口 Vue 组件库首屏优化实践
vue.js·vite