vue中使用el-table时,动态获取header,切换后重新加载数据及header出现抖动

问题描述

使用el-table时,动态获取header,切换后重新加载数据及header出现抖动

原因分析:

动态切换表头的时候出现抖动是因为表头重新计算高度导致的,重写表格样式即可在数据加载完后重新渲染可以使用doLayout方法

解决方案:

<el-table ref="multipleTable" :data="tableData">
        <el-table-column
        	v-for="(item, index) in header"
        	:key="index"
        	:prop="item.prop"
        	label="item.name"
        	align="center"
        >
        	<template slot-scope="scope">
                <div style="display: inline">
                  {{ scope.row[item.prop] }}
                </div>
            </template>
        </el-table-column>
</el-table>
  beforeUpdate() {
    this.$nextTick(() => {
      // 在数据加载完,重新渲染表格
      this.$refs['multipleTable'].doLayout();
    });
  },
element ui表格抖动的原因是因为无论是显示列还是隐藏列,vue都需要重新计算单元格的高度和宽度,然后再重新渲染到页面上。因为这个过程被直接反馈到了页面上,所以导致了table发生闪烁。解决方法是使用element中的dolayout函数。具体实现方法如下: ```javascript <template> <el-table :data="tableData" style="width: 100%" :key="tableKey" ref="table" @selection-change="handleSelectionChange" @sort-change="handleSortChange" @filter-change="handleFilterChange" @row-click="handleRowClick" @row-dblclick="handleRowDblclick" @row-contextmenu="handleRowContextmenu" @header-click="handleHeaderClick" @header-contextmenu="handleHeaderContextmenu" @current-change="handleCurrentChange" @header-dragend="handleHeaderDragend" @expand-change="handleExpandChange" @select="handleSelect" @select-all="handleSelectAll" @cell-mouse-enter="handleCellMouseEnter" @cell-mouse-leave="handleCellMouseLeave" @cell-click="handleCellClick" @cell-dblclick="handleCellDblclick" @cell-contextmenu="handleCellContextmenu" @edit-disabled="handleEditDisabled" @edit-closed="handleEditClosed" @edit-actived="handleEditActived" @edit-canceled="handleEditCanceled" @edit-submit="handleEditSubmit" @edit-command="handleEditCommand" @edit-queue-full="handleEditQueueFull" @edit-clear="handleEditClear" @edit-validate="handleEditValidate" @edit-invalid="handleEditInvalid" @edit-valid="handleEditValid" @edit-error="handleEditError" @edit-reset="handleEditReset" @edit-render="handleEditRender" @edit-parse-value="handleEditParseValue" @edit-format-value="handleEditFormatValue" @edit-select-all="handleEditSelectAll" @edit-tab="handleEditTab" @edit-toggle-dropdown="handleEditToggleDropdown" @edit-click="handleEditClick" @edit-focus="handleEditFocus" @edit-blur="handleEditBlur" @edit-change="handleEditChange" @edit-input="handleEditInput" @edit-composition-start="handleEditCompositionStart" @edit-composition-update="handleEditCompositionUpdate" @edit-composition-end="handleEditCompositionEnd" @edit-custom-command="handleEditCustomCommand" @edit-custom-button-click="handleEditCustomButtonClick" @edit-custom-cell-click="handleEditCustomCellClick" @edit-custom-cell-mouseenter="handleEditCustomCellMouseenter" @edit-custom-cell-mouseleave="handleEditCustomCellMouseleave" @edit-custom-cell-contextmenu="handleEditCustomCellContextmenu" @edit-custom-cell-dblclick="handleEditCustomCellDblclick" @edit-custom-cell-focus="handleEditCustomCellFocus" @edit-custom-cell-blur="handleEditCustomCellBlur" @edit-custom-cell-keydown="handleEditCustomCellKeydown" @edit-custom-cell-keyup="handleEditCustomCellKeyup" @edit-custom-cell-keypress="handleEditCustomCellKeypress" @edit-custom-cell-edit-disabled="handleEditCustomCellEditDisabled" @edit-custom-cell-edit-closed="handleEditCustomCellEditClosed" @edit-custom-cell-edit-actived="handleEditCustomCellEditActived" @edit-custom-cell-edit-canceled="handleEditCustomCellEditCanceled" @edit-custom-cell-edit-submit="handleEditCustomCellEditSubmit" @edit-custom-cell-edit-command="handleEditCustomCellEditCommand" @edit-custom-cell-edit-queue-full="handleEditCustomCellEditQueueFull" @edit-custom-cell-edit-clear="handleEditCustomCellEditClear" @edit-custom-cell-edit-validate="handleEditCustomCellEditValidate" @edit-custom-cell-edit-invalid="handleEditCustomCellEditInvalid" @edit-custom-cell-edit-valid="handleEditCustomCellEditValid" @edit-custom-cell-edit-error="handleEditCustomCellEditError" @edit-custom-cell-edit-reset="handleEditCustomCellEditReset" @edit-custom-cell-edit-render="handleEditCustomCellEditRender" @edit-custom-cell-edit-parse-value="handleEditCustomCellEditParseValue" @edit-custom-cell-edit-format-value="handleEditCustomCellEditFormatValue" @edit-custom-cell-edit-select-all="handleEditCustomCellEditSelectAll" @edit-custom-cell-edit-tab="handleEditCustomCellEditTab" @edit-custom-cell-edit-toggle-dropdown="handleEditCustomCellEditToggleDropdown" @edit-custom-cell-edit-click="handleEditCustomCellEditClick" @edit-custom-cell-edit-focus="handleEditCustomCellEditFocus" @edit-custom-cell-edit-blur="handleEditCustomCellEditBlur" @edit-custom-cell-edit-change="handleEditCustomCellEditChange" @edit-custom-cell-edit-input="handleEditCustomCellEditInput" @edit-custom-cell-edit-composition-start="handleEditCustomCellEditCompositionStart" @edit-custom-cell-edit-composition-update="handleEditCustomCellEditCompositionUpdate" @edit-custom-cell-edit-composition-end="handleEditCustomCellEditCompositionEnd" @edit-custom-cell-edit-custom-command="handleEditCustomCellEditCustomCommand" @edit-custom-cell-edit-custom-button-click="handleEditCustomCellEditCustomButtonClick" @edit-custom-cell-edit-custom-cell-click="handleEditCustomCellEditCustomCellClick" @edit-custom-cell-edit-custom-cell-mouseenter="handleEditCustomCellEditCustomCellMouseenter" @edit-custom-cell-edit-custom-cell-mouseleave="handleEditCustomCellEditCustomCellMouseleave" @edit-custom-cell-edit-custom-cell-contextmenu="handleEditCustomCellEditCustomCellContextmenu" @edit-custom-cell-edit-custom-cell-dblclick="handleEditCustomCellEditCustomCellDblclick" @edit-custom-cell-edit-custom-cell-focus="handleEditCustomCellEditCustomCellFocus" @edit-custom-cell-edit-custom-cell-blur="handleEditCustomCellEditCustomCellBlur" @edit-custom-cell-edit-custom-cell-keydown="handleEditCustomCellEditCustomCellKeydown" @edit-custom-cell-edit-custom-cell-keyup="handleEditCustomCellEditCustomCellKeyup" @edit-custom-cell-edit-custom-cell-keypress="handleEditCustomCellEditCustomCellKeypress" @edit-custom-cell-edit-custom-cell-edit-disabled="handleEditCustomCellEditCustomCellEditDisabled" @edit-custom-cell-edit-custom-cell-edit-closed="handleEditCustomCellEditCustomCellEditClosed" @edit-custom-cell-edit-custom-cell-edit-actived="handleEditCustomCellEditCustomCellEditActived" @edit-custom-cell-edit-custom-cell-edit-canceled="handleEditCustomCellEditCustomCellEditCanceled" @edit-custom-cell-edit-custom-cell-edit-submit="handleEditCustomCellEditCustomCellEditSubmit" @edit-custom-cell-edit-custom-cell-edit-command="handleEditCustomCellEditCustomCellEditCommand" @edit-custom-cell-edit-custom-cell-edit-queue-full="handleEditCustomCellEditCustomCellEditQueueFull" @edit-custom-cell-edit-custom-cell-edit-clear="handleEditCustomCellEditCustomCellEditClear" @edit-custom-cell-edit-custom-cell-edit-validate="handleEditCustomCellEditCustomCellEditValidate" @edit-custom-cell-edit-custom-cell-edit-invalid="handleEditCustomCellEditCustomCellEditInvalid" @edit-custom-cell-edit-custom-cell-edit-valid="handleEditCustomCellEditCustomCellEditValid" @edit-custom-cell-edit-custom-cell-edit-error="handleEditCustomCellEditCustomCellEditError" @edit-custom-cell-edit-custom-cell-edit-reset="handleEditCustomCellEditCustomCellEditReset" @edit-custom-cell-edit-custom-cell-edit-render="handleEditCustomCellEditCustomCellEditRender" @edit-custom-cell-edit-custom-cell-edit-parse-value="handleEditCustomCellEditCustomCellEditParseValue" @edit-custom-cell-edit-custom-cell-edit-format-value="handleEditCustomCellEditCustomCellEditFormatValue" @edit-custom-cell-edit-custom-cell-edit-select-all="handleEditCustomCellEditCustomCellEditSelectAll" @edit-custom-cell-edit-custom-cell-edit-tab="handleEditCustomCellEditCustomCellEditTab" @edit-custom-cell-edit-custom-cell-edit-toggle-dropdown="handleEditCustomCellEditCustomCellEditToggleDropdown" @edit-custom-cell-edit-custom-cell-edit-click="handleEditCustomCellEditCustomCellEditClick" @edit-custom-cell-edit-custom-cell-edit-focus="handleEditCustomCellEditCustomCellEditFocus" @edit-custom-cell-edit-custom-cell-edit-blur="handleEditCustomCellEditCustomCellEditBlur" @edit-custom-cell-edit-custom-cell-edit-change="handleEditCustomCellEditCustomCellEditChange" @edit-custom-cell-edit-custom-cell-edit-input="handleEditCustomCellEditCustomCellEditInput" @edit-custom-cell-edit-custom-cell-edit-composition-start="handleEditCustomCellEditCustomCellEditCompositionStart" @edit-custom-cell-edit-custom-cell-edit-composition-update="handleEditCustomCellEditCustomCellEditCompositionUpdate" @edit-custom-cell-edit-custom-cell-edit-composition-end="handleEditCustomCellEditCustomCellEditCompositionEnd" @edit-custom-cell-edit-custom-cell-edit-custom-command="handleEditCustomCellEditCustomCellEditCustomCommand" @edit-custom-cell-edit-custom-cell-edit-custom-button-click="handleEditCustomCellEditCustomCellEditCustomButtonClick" @edit-custom-cell-edit-custom-cell-edit-custom-cell-click="handleEditCustomCellEditCustomCellEditCustomCellClick" @edit-custom-cell-edit-custom-cell-edit-custom-cell-mouseenter="handleEditCustomCellEditCustomCellEditCustomCellMouseenter" @edit-custom-cell-edit-custom-cell-edit-custom-cell-mouseleave="handleEditCustomCellEditCustomCellEditCustomCellMouseleave" @edit-custom-cell-edit-custom-cell-edit-custom-cell-contextmenu="handleEditCustomCellEditCustomCellEditCustomCellContextmenu" @edit-custom-cell-edit-custom-cell-edit-custom-cell-dblclick="handleEditCustomCellEditCustomCellEditCustomCellDblclick" @edit-custom-cell-edit-custom-cell-edit-custom-cell-focus="handleEditCustomCellEditCustomCellEditCustomCellFocus" @edit-custom-cell-edit-custom-cell-edit-custom-cell-blur="handleEditCustomCellEditCustomCellEditCustomCellBlur" @edit-custom-cell-edit-custom-cell-edit-custom-cell-keydown="handleEditCustomCellEditCustomCellEditCustomCellKeydown" @edit-custom-cell-edit-custom-cell-edit-custom-cell-keyup="handleEditCustomCellEditCustomCellEditCustomCellKeyup" @edit-custom-cell-edit-custom-cell-edit-custom-cell-keypress="handleEditCustomCellEditCustomCellEditCustomCellKeypress" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-disabled="handleEditCustomCellEditCustomCellEditCustomCellEditDisabled" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-closed="handleEditCustomCellEditCustomCellEditCustomCellEditClosed" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-actived="handleEditCustomCellEditCustomCellEditCustomCellEditActived" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-canceled="handleEditCustomCellEditCustomCellEditCustomCellEditCanceled" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-submit="handleEditCustomCellEditCustomCellEditCustomCellEditSubmit" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-command="handleEditCustomCellEditCustomCellEditCustomCellEditCommand" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-queue-full="handleEditCustomCellEditCustomCellEditCustomCellEditQueueFull" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-clear="handleEditCustomCellEditCustomCellEditCustomCellEditClear" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-validate="handleEditCustomCellEditCustomCellEditCustomCellEditValidate" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-invalid="handleEditCustomCellEditCustomCellEditCustomCellEditInvalid" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-valid="handleEditCustomCellEditCustomCellEditCustomCellEditValid" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-error="handleEditCustomCellEditCustomCellEditCustomCellEditError" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-reset="handleEditCustomCellEditCustomCellEditCustomCellEditReset" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-render="handleEditCustomCellEditCustomCellEditCustomCellEditRender" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-parse-value="handleEditCustomCellEditCustomCellEditCustomCellEditParseValue" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-format-value="handleEditCustomCellEditCustomCellEditCustomCellEditFormatValue" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-select-all="handleEditCustomCellEditCustomCellEditCustomCellEditSelectAll" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-tab="handleEditCustomCellEditCustomCellEditCustomCellEditTab" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-toggle-dropdown="handleEditCustomCellEditCustomCellEditCustomCellEditToggleDropdown" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-click="handleEditCustomCellEditCustomCellEditCustomCellEditClick" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-focus="handleEditCustomCellEditCustomCellEditCustomCellEditFocus" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-blur="handleEditCustomCellEditCustomCellEditCustomCellEditBlur" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-change="handleEditCustomCellEditCustomCellEditCustomCellEditChange" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-input="handleEditCustomCellEditCustomCellEditCustomCellEditInput" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-composition-start="handleEditCustomCellEditCustomCellEditCustomCellEditCompositionStart" @edit-custom-cell-edit-custom-cell-edit-custom-cell-edit-composition
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值