vue element-ui (可编辑)table加载缓慢问题

这篇具有很好参考价值的文章主要介绍了vue element-ui (可编辑)table加载缓慢问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:

公司最近开了个需求会,要求做一个可编辑的table的表格,并且要求该表格添加权限,点击可编辑,时间段跳转(选择时间,跳转到时间当前位置),无分页(要求一页解决),有选中框,有批量处理的功能,input添加校验功能,小图标展示,编辑后局部刷新页面:
1.管理员(可编辑,可查看,可以操控所有权限(内置保存,导出等));
2.员工(可编辑,可查看,导出,保存);
3.观察人员(可查看);

做法:

前后端联调,权限控制。接口在修改完成后,接口获取修改数据,页面部分刷新。使用element table @cell-click="cellClick"方法,获取table下表标实现权限控制,使用input(防止页面卡顿),使用(οnkeyup=“this.value=this.value.replace(/[, ]/g,‘’)”)禁止传空。采用滚动监听,实现头部,底部跳转,标识转变。一个页面展示所有信息,对数据进行优化,减少不必要的信息导致页面卡顿。编辑一个信息,在下面添加一行数据,展示依旧是不可编辑的装态。有权限则可以编辑table页面,否则只能观察,或者显示无权限。

<el-table
      ref="multipleTable"
      :data="supplyEnterTable"
      border
      :height="tableHeight"
      @sort-change="changeSort"
      v-adaptive="{ bottomOffset: 65 }"
      class="tableBig tablemin-height"
      @selection-change="handleRowChange"
      :cell-class-name="tableCellClassName"
      @cell-click="cellClick"
    >
    <el-table-column type="selection" fixed width="55" align="center"> </el-table-column>
	<el-table-column label="姓名" prop="applyName" min-width="130" align="center">
        <template slot-scope="scope">
          <input
            v-if="scope.row.index === rowSwitch && scope.column.index === colSwitch"
            placeholder="请输入姓名"
            v-model.lazy="scope.row.applyName"
            
            class="inputTrim"
          />
           <p v-else>{{ scope.row.applyName }}</p>
        </template>
      </el-table-column>
</el-table>


//单元格点击
    cellClick(row, column) {
      let refsElTable = this.$refs.multipleTable; // 获取表格对象
      if (!this.multipleSelection.includes(row) && this.forHaveShow(row)) {
        refsElTable.toggleRowSelection(row); // 调用选中行方法
      }
      this.rowSwitch = row.index;
      this.colSwitch = column.index;
    },

问题:

数据较大时,页面卡顿,编辑点击缓慢,切换状态缓慢,切换渲染页,无法渲染,页面推进满,会导致页面卡死。
在网上看到问题治标不治本,页面交互太多,大概15个操作,渲染处理页面各类数据,为0不展示等等,导致dom渲染缓慢,速度很慢

解决方案:

最后减少页面dom渲染,减少循环嵌套,使用this.$set局部刷新数据,提取公共方法,将方法大致规整。
修改了element table为umy table来解决卡顿问题,确实改善了这种情况文章来源地址https://www.toymoban.com/news/detail-556855.html

<ux-grid border
      show-overflow
      keep-source
      use-virtual
      ref="multipleTable"      
      :height="tableHeight"
      :highlightCurrentRow="false"
      @sort-change="changeSort"
      v-adaptive="{ bottomOffset: 65 }"
      class="externalTable tableBig tablemin-height"
      :cell-class-name="tableCellClassName"
      @cell-click="cellClick"
      @selection-change="handleRowChange"
      @table-body-scroll="tableScroll"
      :edit-config="{trigger: 'click', mode: 'cell'}">
  <ux-table-column title="信息" field="verifyCommission" min-width="130" align="left" edit-render>
        <template v-slot="scope">
        </template>
        <template v-slot:edit="scope">
        </template>
    </ux-table-column>

到了这里,关于vue element-ui (可编辑)table加载缓慢问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui中table表格标签编辑功能的实现

    表格实现编辑功能。在实际开发过程中,我们表格的表头往往很多,有的还会发生变化,所以本文参考一位博主的代码结合自己的项目进行了改编。 参考原文链接:vue element-ui实现table表格可编辑修改

    2024年02月13日
    浏览(57)
  • 解决 elementUI 的 table 表格改变数据不更新问题 解决 vue数据不更新问题 element-ui 表格数据不更新

    利用 v-if这些都是一个逻辑,都是改变事件,达到数据刷新,没必要用 v-if 消耗性能 比较耗性能

    2023年04月08日
    浏览(51)
  • Vue2.0+Element-ui(2.15.13)出现el-table不显示问题解决方案

    遇到的问题: Element-ui中的 el-table组件 无法正常显示; 1.安装的Vue是2.0版本; 2.安装的Element-ui是2.15.13版本 原因: 1.一个项目调用了element-ui和vant两个ui库,有冲突; 2.Element-ui是2.15.13版本依赖比较高;   解决方案: 1.npm uninstall element-ui;下载Element-ui 2.npm install element-ui@2.8.3

    2024年02月11日
    浏览(56)
  • element-ui的table实现滚动加载,涵el-table组件封装一份

    重点就是 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e n e r 函数,想快点弄上去看效果的直接弄这个函数吧 如果不在mounted中则一定要this.$nextTick(() = this.addRollListener()) 示例代码 如果你把上面的看过了;只需要在 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e

    2023年04月08日
    浏览(62)
  • element-ui 中 el-table 分页多选(记住上一页勾选数据)及编辑回显 element-ui 中 el-table 分页多选(记住上一页勾选数据)及编辑回显

    element-ui 的官网是有属性的 row-key  属性传入唯一值 row-key  属性传入一个方法 核心: this.$refs.multipleTable.toggleRowSelection(val, true)

    2024年02月15日
    浏览(47)
  • Vue Element-ui Table表格排序

    一.表格中有时候会有排序的需求,如果只针对当前页进行排序,那么前端就可以实现排序,在对应需要排序的字段中,使用sortable字段即可。 二.存在分页的情况时,前端仅仅使用sortable当前页排序已经不能满足我们的需求,无法对所有数据进行排序。这时候我们就要使用后端

    2024年02月11日
    浏览(51)
  • vue+element-ui el-table组件二次封装实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题

    某些页面不做分页时,当数据过多,会导致页面卡顿,甚至卡死 一、固定一个 可视区域 的大小并且其大小是不变的,那么要做到性能最大化就需要尽量少地渲染 DOM 元素,而这个最小值也就是可视范围内需要展示的内容,而可视区域之外的元素均可以不做渲染。 二、如何计

    2024年02月10日
    浏览(64)
  • vue监听element-ui的table表格滚动事件

    这篇文章主要是讲述“如何监听element-ui table滚动事件”,按我自己尝试的方法去实现。 需求分析: 前两天做项目遇到一个问题,数据量大,然后表格渲染的很慢,而且很卡怎么办?有什么优化的方式? 那无非就是两种方法。 先加载一屏表格的数据,之后触底加载新的数据

    2024年02月12日
    浏览(58)
  • element-ui的树形表格el-table懒加载lazy子节点修改数据后局部刷新

    在使用element-ui的树形表格(el-table)懒加载(lazy),并使用了懒加载,出现了一个问题,在对当前节点添加、修改、删除一个子节点数据时,当前节点的子节点数据并不自动刷新出来。element-ui官方没有提供子节点修改数据后局部刷新方法。 首先,在data(){}中定义一个maps:new Map();

    2024年02月12日
    浏览(49)
  • vue+element-ui+springboot 在线表格编辑

    方法: 编辑excel 格式为需要的样子,另存为html 打开files文件,复制html部分代码和样式到vue文件 将需要编辑的部分使用控件填入 代码: 特别地: 服装列数可变,需要动态变换,同时有的可编辑,有的不可编辑 增加表格行数,可通过增加memberList 数据进行动态添加和删除,无

    2024年01月24日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包