vue数据太多导致页面卡顿解决办法

这篇具有很好参考价值的文章主要介绍了vue数据太多导致页面卡顿解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:查询统计表格页面操作卡顿迟缓

原因:查询一天内某个接口每分钟调用量,由于一次返回几百列数据(60*24),并且不做分页,加载过多数据之后,造成页面卡顿,操作延迟

解决办法:

1.和后端沟通进行页面分页加载(本次需求列数过多,不适用)

2.使用umy-ui库中的表格代替el-table

  • u-table不支持展开行,需要展开行使用ux-grid
  • ux-grid解决列多 行多导致卡的情况
  • u-table解决行多的情况,不解决列多的情况

下面是ux-grid懒加载展开行的例子:

// main.js
import 'umy-ui/lib/theme-chalk/index.css'// 引入样式
import { UTableColumn, UTable, UxGrid, UxTableColumn } from 'umy-ui' // 按需引入组件
Vue.component(UTable.name, UTable)
Vue.component(UTableColumn.name, UTableColumn)
Vue.component(UxGrid.name, UxGrid)
Vue.component(UxTableColumn.name, UxTableColumn)

加上row-id属性,以及展开行tree-config、expand-config ,ux-table-column添加tree-node属性

<template>
  <!-- 表格 -->
  <div class="table-container">
    <ux-grid
      ref="plxTable"
      border
      :data="tableData"
      row-id="key"
      :tree-config="{lazy: true, children: 'children', hasChild: 'hasChildren', loadMethod: load}"
      :expand-config="{ labelField: 'key', expandAll: false}"
    >
      <ux-table-column
        v-for="(item, index) in tableConfig"
        :key="index"
        align="center"
        :field="item.prop"
        :title="item.label"
        :width="tableData.length ? item.width : 'auto'"
        :fixed="item.fixed"
        :tree-node="item.prop == 'key'"
      >
        <template slot-scope="{ row }">
          <span>{{ row[item.prop] }}</span>
        </template>
      </ux-table-column>
    </ux-grid>
  </div>
</template>

load 方法里面是后端请求回来的数据,需要return出去

methods: {
    async load({ row }) {
      let nodes = []
      this.$store.commit('settings/CHANGE_LOADING', true)
      try {
        const res = await queryUsersStatistics({
          date: this.date,
          appKey: row.key
        })
        const { success, data } = res
        if (success && data) {
          console.log(data)
          nodes = data.map((item) => {
            const { key, total, minuteCountTable } = item
            return {
              key,
              total,
              ...minuteCountTable
            }
          })
        }
        this.$store.commit('settings/CHANGE_LOADING', false)
      } catch (error) {
        console.log(error)
        this.$store.commit('settings/CHANGE_LOADING', false)
      }
      console.log('nodes', nodes)
      return nodes
    }
  }

3.不采用ui中的表格组件,自定义虚拟表格加载数据(此方法比较复杂,手动实现虚拟表格)

放在下一篇。。。文章来源地址https://www.toymoban.com/news/detail-477807.html

到了这里,关于vue数据太多导致页面卡顿解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vue 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

    前言 顾名思义, chunk-vendors.js 是捆绑所有不是自己的模块,而是来自其他方的模块的捆绑包,它们称为第三方模块或供应商模块。 通常,它意味着(仅和)来自项目 /node_modules 目录的所有模块,会将所有 /node_modules 中的第三方包打包到 chunk-vendors.js 中。 将所有的第三方包集

    2024年02月16日
    浏览(19)
  • vue/react项目刷新页面出现404的原因以及解决办法

    问题描述:vue/react项目,正常的页面操作跳转,不会出现404的问题,但是一旦刷新,就会出现404报错。 产生原因:我们打开vue/react打包后生成的dist文件夹,可以看到只有一个 index.html 文件及一些静态资源,这个是因为vue/react是单页应用(SPA),只有一个index.html作为入口文件,

    2024年02月06日
    浏览(12)
  • unity如何解决协程开启频繁导致的程序卡顿

    协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中。当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一帧内等这个操作完成后再执行其他操作。 unity中协程在start前需要判断其是否开启了,否则协程会不断叠加 解决方式一

    2024年02月09日
    浏览(10)
  • vue通过router地址传参跳转同一路由页面,页面不刷新的解决办法

    vue、 vue-router@4 记录一下最近遇到的vue路由页面间的跳转的问题,其中就涉及到了不同路由的跳转(/a/b1 = /a/b2)、相同路由不同参数间的跳转(/a/b?c=1 = /a/b?c=2)、相同页面锚点跳转(/a/b#id1 =/a/b#id2) 原因:渲染的是同一组件 解决:可以在不刷新的页面通过监听route,重新加载

    2024年02月04日
    浏览(15)
  • navigateTo失效-跳转不了页面解决办法!uniapp\vue

    navigateTo失效-跳转不了页面解决办法!uniapp\vue

    改了一个小时多的错误,跳转页面无论怎么样都跳转不了,有2个问题: 注意: uniapp的报错可以在console里检查! 1.pages.json文件没有配置路径, 在pages:[  ]里面加 (根据自己的路径进行修改   2. navigateTo的url pages前面要加\\\'/\\\'   原本我的是pages/detail死活跳转不进去!

    2024年01月19日
    浏览(11)
  • 关于vue路由跳转后的页面不会刷新的解决办法

    做uni项目的时候遇到的情况:1,父组件页面刷新了之后 需要触底加载的子组件能触底加载,否则不能加载。2,子组件不能触底加载,只需要刷新之后就能触底加载。以上的刷新不包括下拉刷新。3. 可能因为包了一层tab页导致跳转进页面没有请求数据的问题。 我的解决办法是

    2024年02月11日
    浏览(18)
  • 将较大的数组赋值<el-table></el-table>时,会导致页面卡顿,甚至崩溃

    遇到的问题:将长度为40的数组数据赋值el-table/el-table,我发现loading没有效果,后面发现是页面卡住了,loading直接没有出现。 经过查询资料,发现el-table会有卡顿的问题,看到有的博主推荐使用一款叫umy-ui的插件,我就试了试,发现卡顿的问题解决了。 官网: http://www.umyui

    2024年02月05日
    浏览(11)
  • 外星人控制中心(AWCC)出现错误日志导致电脑卡顿的解决建议

    我的设备是一台19年的戴尔G3 3590,在更新了最新的AWCC之后电脑出现随机卡顿,于是开始尝试解决问题,最后在戴尔支持技术人员的帮助下解决了卡顿问题,AWCC正常工作,G模式也能正常开启。以下是一些解决建议。 按照戴尔支持技术人员的说法,戴尔针对新版本的AWCC导致电

    2024年02月11日
    浏览(44)
  • 解决前端vue框架select下拉数据量过大造成卡顿问题

    解决前端vue框架select下拉数据量过大造成卡顿问题

    问题:当加载上百条、上千条数据,导致下拉框数据卡顿 解决:将数据分割成更小的单元,每次下拉到底部加载一部分  利用下拉滚动事件  视图部分: a-select label-in-value :default-value=\\\"{ key: \\\'lucy\\\' }\\\" style=\\\"width: 120px\\\" @change=\\\"handleChange\\\" @popupScroll=\\\"handldpopupscroll\\\" a-select-option/a-selec

    2024年02月16日
    浏览(14)
  • ubuntu22.04 ibus导致键盘延时卡顿解决; ibus终端光标消失

    ubuntu22.04 ibus导致键盘延时卡顿解决; ibus终端光标消失

    正常安装ubuntu22.04几天内,貌似安装过什么特别的软件,忘记了,获得现象每隔N时间(大约10分钟不到)键盘打字延时超出5秒,做两次重启ibus: ibus-daemon -r -d -x 可以再获得N时间的正常,但这是治标不治本。 解决办法是重装ibus: 参考: https://segmentfault.com/a/1190000008063732 ibus拼音

    2024年04月11日
    浏览(17)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包