vue3 elementplus el-table 自适应高度
时间: 2025-01-14 13:22:52 浏览: 130
### 实现 Vue 3 中 Element Plus 的 `el-table` 组件自适应高度
为了使 `el-table` 组件在 Vue 3 项目中实现自适应高度,可以采用监听窗口大小变化并动态调整表格高度的方法。具体来说,在初始化时以及每次窗口尺寸发生变化时重新计算表格的高度。
#### 安装依赖项
确保已经安装了最新的 Element Plus 库:
```bash
npm install element-plus --save
```
#### 创建响应式表格组件
下面是一个完整的示例来展示如何创建一个具有自适应高度特性的表格组件:
```html
<template>
<div class="table-container">
<el-table :data="tableData" style="width: 100%" :height="tableHeight">
<!-- 表格列定义 -->
<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>
</div>
</template>
<script lang="ts">
import { defineComponent, ref, onMounted, watch } from 'vue';
export default defineComponent({
name: "ResponsiveTable",
setup() {
const tableHeight = ref<number>(window.innerHeight - 200); // 初始化表高
function resizeHandler(): void {
tableHeight.value = window.innerHeight - 200;
}
onMounted(() => {
window.addEventListener('resize', resizeHandler);
});
// 清除事件监听器以防止内存泄漏
watch(
() => tableHeight.value,
(newValue) => {
console.log(`New height is ${newValue}px`);
}
);
return {
tableHeight,
tableData: [
{
date: '2016-05-03',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-02',
name: 'John',
address: 'No. 189, Grove St, Los Angeles'
},
// 更多数据...
]
};
}
});
</script>
<style scoped>
.table-container {
padding: 20px;
}
</style>
```
此代码片段展示了如何利用 Vue 3 和 TypeScript 来构建一个能够根据浏览器视窗大小自动调整其自身的 `el-table` 高度的组件[^2]。
阅读全文
相关推荐


















