实现el-table 点击按钮 增加一条数据 让表格滚动到最底部

在使用 Element UI 的 el-table 组件时,如果你希望在点击一个按钮后增加一条数据并让表格滚动到底部,你可以通过以下步骤来实现:

  1. 增加数据:首先,将新数据添加到你的数据数组中。
  2. 滚动到底部:然后,使用 DOM 操作来让表格滚动到底部。

以下是一个完整的示例代码,展示如何实现这一功能:

javascript 复制代码
<template>
  <div>
    <el-button @click="addRow">增加一行</el-button>
    <el-table
      ref="myTable"
      :data="tableData"
      style="width: 100%"
      height="400px"
    >
      <el-table-column prop="date" label="日期" width="180"></el-table-column>
      <el-table-column prop="name" label="姓名" width="180"></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        },
        {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄'
        },
        // 其他数据...
      ]
    };
  },
  methods: {
    addRow() {
      // 添加新数据
      this.tableData.push({
        date: '2016-05-06', // 你可以根据需要动态生成日期
        name: '新姓名',
        address: '新地址'
      });

      // 触发表格滚动到底部
      this.$nextTick(() => {
        const tableBodyWrapper = this.$refs.myTable.bodyWrapper;
        tableBodyWrapper.scrollTop = tableBodyWrapper.scrollHeight;
      });
    }
  }
};
</script>
  1. 滚动到底部
    • 使用 this.$nextTick 确保 DOM 更新完成后再执行滚动操作。
    • this.$refs.myTable.bodyWrapper 获取表格的 bodyWrapper DOM 元素,它包含了表格内容的滚动区域。
    • 设置 scrollTopscrollHeight,这会将滚动区域滚动到底部。
    • this.$nextTick 是 Vue 提供的一个方法,用于在下次 DOM 更新循环结束之后执行延迟回调。这对于在数据更新后需要访问更新后的 DOM 场景非常有用。
相关推荐
PineappleCoder7 小时前
性能数据别再瞎轮询了!PerformanceObserver 异步捕获 LCP/CLS,不卡主线程
前端·性能优化
PineappleCoder7 小时前
告别字体闪烁 / 首屏卡顿!preload 让关键资源 “高优先级” 提前到
前端·性能优化
m0_471199637 小时前
【vue】通俗详解package-lock文件的作用
前端·javascript·vue.js
GIS之路8 小时前
GDAL 读取KML数据
前端
今天不要写bug8 小时前
vue项目基于vue-cropper实现图片裁剪与图片压缩
前端·javascript·vue.js·typescript
用户47949283569158 小时前
记住这张时间线图,你再也不会乱用 useEffect / useLayoutEffect
前端·react.js
汝生淮南吾在北9 小时前
SpringBoot+Vue养老院管理系统
vue.js·spring boot·后端·毕业设计·毕设
咬人喵喵9 小时前
14 类圣诞核心 SVG 交互方案拆解(附案例 + 资源)
开发语言·前端·javascript
问君能有几多愁~9 小时前
C++ 日志实现
java·前端·c++