vue element table 懒加载 根据滚动条滑动动态加载数据 无分页或分页过大 渲染慢问题

这篇具有很好参考价值的文章主要介绍了vue element table 懒加载 根据滚动条滑动动态加载数据 无分页或分页过大 渲染慢问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现思路:先加载一开始会在页面上显示的数据,比如页面能显示20条数据,就先加载20条,剩下的数据监听滚动条,滚动条到底部再加载。
1.在data()中定义三个属性,分别存储数据指针、表格显示的数据和接口中获取的所有数据。

	  //数据指针 默认19
      needle:19,
      //表格数据
      tableData:[],
      //所有数据
      allData:[],

element 表格滚动加载,vue.js,javascript,前端

2.从接口获取数据,并添加最初20条到tableData中。

		// 所有数据
        this.allData = response.rows;
		// 初始值为19
        this.needle=19;
        this.tableData=[]
        //判断数据长度有没有20个,有就先添加20个,没有直接获取所有数据
        if(this.allData.length>19){
          for(let i=0;i<20;i++){
            this.tableData[i]=this.allData[i]
          }
        }else{
          this.tableData=this.allData
        }

element 表格滚动加载,vue.js,javascript,前端
3.定义懒加载函数

    lazyLoading(){
      //获取table的body元素
      let dom = document.querySelector(".el-table__body-wrapper");
      console.log('dom',dom)
      //添加对滚动条的监听
      dom.addEventListener("scroll", (v) => {
        const scrollDistance = dom.scrollHeight - dom.scrollTop - dom.clientHeight;
        console.log("鼠标滑动-scrollDistance",scrollDistance)
        // if (scrollDistance <= 0) {  //分辨率问题,如果设置 100% ,滑倒最底部,scrollDistance的值 可能为 0.201 到 -0.201
        if (scrollDistance <= 1) {
          //等于0证明滚动条已经到底
          // 一条一条加载记录,直至遍历到最后一条
          while(this.needle<this.allData.length-1){
            this.tableData[this.needle]=this.allData[this.needle]
            console.log('this.tableData',this.tableData)
            this.$forceUpdate()
            this.needle++
          }
        }
      });
    },

element 表格滚动加载,vue.js,javascript,前端
4.最后将this.lazyLoading()放在mounted中文章来源地址https://www.toymoban.com/news/detail-617977.html

mounted() {
    setTimeout(() => {
      this.lazyLoading();
    }, 1500);
  },

到了这里,关于vue element table 懒加载 根据滚动条滑动动态加载数据 无分页或分页过大 渲染慢问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 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日
    浏览(40)
  • Element table根据字段合并表格(可多字段合并),附带拖拽列动态合并

    效果如图,姓名 数值1 字段进行自动合并 封装合并列js - tableMerge.js 拖拽使用sortablejs 如果拖拽列 要动态生成列 注意不支持行拖拽

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

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

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

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

    2024年02月10日
    浏览(39)
  • Vue3+Vue-Router+Element-Plus根据后端数据实现前端动态路由——权限管理模块

    提示:文章内容仔细看一些,或者直接粘贴复制,效果满满 提示:文章大概 1、项目:前后端分离 2、前端:基于Vite创建的Vue3项目 3、后端:没有,模拟的后端数据 4、关于路径“@”符号——vite.config.js 文件里修改 提示:以下是本篇文章正文内容,下面案例可供复制粘贴使用

    2024年02月02日
    浏览(38)
  • vue+element-ui 实现下拉框滚动加载

    该功能是由 自定义滚动指令 结合下拉框 :remote-method 远程搜索 实现的 开启远程搜索 参考官方文档 绑定自定义指令 v-el-select-loadmore=“loadmore”

    2024年02月14日
    浏览(46)
  • element table列表根据数据设置背景色

    效果 页面代码 通过 :cell-class-name 动态绑定类名 数据 js方法 直接写到 methods 中,列表绑定即可,不需要放到生命周期中。 css部分 不能使用 scope 作用域,否则背景色不生效 动态刷新列表数据关联列表背景色 当列表数据更改时,我们需要根据列表数据来动态判断列表是否高亮

    2024年02月13日
    浏览(32)
  • element-ui——timeline时间线组件+自动滚动+v-infinite-scroll无限滚动+动态加载——技能提升

    最近看到同事在弄日志记录,需要实现的效果是: 最终效果图如下: 解析: 为了实现无限滚动,需要做两块一模一样的内容来回交替显示,也就是上面代码中的id=\\\"timeline1\\\"和id=\\\"timeline2\\\"了

    2024年02月11日
    浏览(29)
  • vue Element UI table表格根据内容长度自适应列宽(af-table-column解决)

    支持自适应列宽功能, 使用方法如下: 安装 引入 使用在需要自适应的列上使用即可 使用前效果 使用后效果

    2024年02月14日
    浏览(27)
  • vue | element-ui中 如何修改表格Table组件中滚动条的样式

    在Table表格中,当内容超出容器时就会出现滚动条,elemnt-ui自带的滚动条有时无法满足需求,那么我们可以通过css伪类来实现对滚动条的自定义。 滚动条由两部分组成的: 滑块:可以滑动的部分。 轨道:滚动条的轨道,即滑块的轨道。一般来说滑块的颜色比轨道的颜色深一

    2024年02月11日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包