vue Table 表格自适应窗口高度,表头固定

当表格内纵向内容过多时,可选择固定表头。

代码很简单,其实就是在table 里面定一个 height 属性即可。

html 复制代码
<template>
  <el-table
    :data="tableData"
    height="250"
    border
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [{
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }]
      }
    }
  }
</script>

问题出现了,不同的屏幕分辨率下,高度是不一样的,如果直接定义成固定的,肯定是不理想的

解决办法

html 复制代码
<template>
  <el-table
    :data="tableData"
    :height="windowHeight"
    border
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        windowHeight: window.innerHeight,
        tableData: [{
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }]
      }
    },
	mounted() {
	  // 监听窗口大小变化事件
	  window.addEventListener('resize', this.handleResize);
	},
	beforeDestroy() {
	  // 移除事件监听器,避免内存泄漏
	  window.removeEventListener('resize', this.handleResize);
	},
	methods: {
	    handleResize() {
	      // 更新窗口高度
	      this.windowHeight = window.innerHeight;
	    }
	 }
  }
</script>

其实就是监听窗口的大小变化,然后动态调整 windowHeight 属性值即可。

逻辑很简单,实现起来也很简单,入不了众老鸟的眼

相关推荐
A_nanda9 小时前
根据AI提示排查vue前端项目
前端·javascript·vue.js
~无忧花开~9 小时前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
@大迁世界10 小时前
1.什么是 ReactJS?
前端·javascript·react.js·前端框架·ecmascript
前端Hardy12 小时前
Wails v3 正式发布:用 Go 写桌面应用,体积仅 12MB,性能飙升 40%!
前端·javascript·go
Highcharts.js12 小时前
Highcharts React v4 迁移指南(下):分步代码示例与常见问题解决
javascript·react.js·typescript·react·highcharts·代码示例·v4迁移
Laurence13 小时前
Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说
前端·javascript·c++·后端·交互·qwebchannel·互操作
Pu_Nine_913 小时前
JavaScript 字符串与数组核心方法详解
前端·javascript·ecmascript
这是个栗子13 小时前
前端开发中的常用工具函数(六)
javascript·every
kyriewen13 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
前端·javascript·面试
前端Hardy13 小时前
别再手动写 loading 了!封装一个自动防重提交的 Hook
前端·javascript·vue.js