当前位置: 首页 > news >正文

有个网站是做视频相册的网站怎么做移动端的

有个网站是做视频相册的,网站怎么做移动端的,小广告发布,郑州做网站和app的公司概要 在vue项目中,有时候需要渲染大量的动态列,在我的项目中当我的列达到150个以上时,出现了列错乱问题,以下是我的示例截图 查看官网渲染大数据时使用虚拟滚动 横向虚拟滚动 通过 scroll-x.enabled 与 scroll-x.gt 组合开启&a…

概要

在vue项目中,有时候需要渲染大量的动态列,在我的项目中当我的列达到150个以上时,出现了列错乱问题,以下是我的示例截图
在这里插入图片描述
查看官网渲染大数据时使用虚拟滚动

横向虚拟滚动
通过 scroll-x.enabled 与 scroll-x.gt 组合开启,其中 enabled 为总开关,gt 是指当总列数大于指定列数时自动开启。
理论上限:横向平均上限支持 8w 列(最大上限 20w 列)。当 gt 为 0 时为总是启用。
性能优化:横向虚拟滚动列宽越宽越流畅,列宽设置 column.width | column.min-width
小提示
启用横向虚拟滚动,建议开启 show-header-overflow 和 show-footer-overflow 获得最高渲染性能

按照官网设置之后,数据量大时依旧错乱,升级版本等各种方法使用之后还是不行

解决方案

requestAnimationFrame
requestAnimationFrame是浏览器用于定时循环操作的一个接口,类似于setTimeout,主要用途是按帧对网页进行重绘,让各种网页动画效果(DOM动画、Canvas动画、SVG动画、WebGL动画)能够有一个统一的刷新机制,从而节省系统资源,提高系统性能,改善视觉效果。

在运行过程中,window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行

这个是在之前做动画的时候用过,抱着试试的心态,我修改了一下我的代码发现可以!
在这里插入图片描述

小结

当使用vxe-table 遇到大数据渲染错乱时,其他方案都不行时,可以试一下requestAnimationFrame

源码

<template><div class="app-container"><a-space style="margin-bottom: 10px"><a-range-picker v-model:value="dates" /><a-button type="primary" @click="onSearch">查询</a-button></a-space><vxe-table:data="tableData":height="800"v-loading="loading"bordershow-overflowshow-header-overflowshow-footer-overflow:scroll-x="{ enabled: true, gt: 0 }"><vxe-columntitle="名称"field="name"width="100"fixed="left"></vxe-column><vxe-columntitle="编码"field="code"width="100"fixed="left"></vxe-column><vxe-columntitle="数量"field="count"width="100"fixed="left"></vxe-column><vxe-columnv-for="item in columns":key="item.field":field="item.field":title="item.title":min-width="item.minWidth"></vxe-column></vxe-table></div>
</template>
<script setup>
import dayjs from 'dayjs'const dates = ref([])
const tableData = ref([])
const loading = ref(false)
const columns = ref([])const onSearch = () => {loading.value = truesetTimeout(() => {requestAnimationFrame(() => {columns.value = getColums()})tableData.value = getData()loading.value = false}, 1000)
}const getColums = () => {if (!dates || dates.value.length === 0) {return []}const [start, end] = dates.valueconst diff = dayjs(end).diff(dayjs(start), 'day')const columns = []for (let i = 0; i <= diff; i++) {const date = dayjs(start).add(i, 'day').format('YYYY-MM-DD')columns.push({field: date,title: date,minWidth: 100})}return columns
}const getData = () => {const columns = getColums()if (!columns || columns.length === 0) {return []}const data = []for (let i = 0; i < 100; i++) {const row = {name: `name${i}`,code: `code${i}`,count: i}for (const col of columns) {row[col.field] = Math.floor(Math.random() * 100)}data.push(row)}return data
}
</script><style scoped lang="scss">
.app-container {padding: 10px;
}
</style>
http://www.dtcms.com/a/574856.html

相关文章:

  • 午夜做网站建设工程专注在哪个网站
  • 以太坊的“燃油费”:详解Gas、Gas Price与Gas Limit
  • 嵌入式项目:韦东山驱动开发第六篇 项目总结——显示系统(framebuffer编程)
  • MySQL的NOW()函数详解
  • 郑州做网站企起广东建设官方网站
  • HTML5 中常用的语义化标签及其简要说明
  • 开源企业网站内容管理系统wordpress 虚拟数据
  • 网站制作方案和主要内容新网网站制作
  • 网站前台页面的设计与实现东阳自适应网站建设
  • 南山附近公司做网站建设多少钱wordpress站点地址和
  • CentOS7配置DHCP服务器全攻略
  • 做游戏网站需要哪些许可昆明百度推广开户费用
  • YAML的使用
  • 天天新网站网站开发 招聘
  • 毕业设计的网站商洛网站设计
  • 微小店网站建设价格为什么那么多人建网站做博客
  • 做自行车网站应该注意什么网页个人简历模板
  • pgsql:connection failed connection to server at
  • STM32H743-ARM例程38-UART-IAP
  • 深圳定制巴士怎么预约如何进行搜索引擎优化 简答案
  • 网站开发维护人员重庆seo杨洋
  • 如何推进网站建设html5网页制作案例
  • 全能网络工具箱:NETworkManager助力运维
  • 重庆市住建厅网站网站设置字体样式
  • 瑞安地区建设网站大连电力工程招标网
  • 石家庄有学校交做网站和优化的吗wordpress 页面评论 调用
  • 哈尔滨高端网站建设wordpress移动底部菜单
  • 免费SSL证书的更新流程
  • 查询网站域名泉州手机网站建设价格
  • Spring解决循环依赖其实就用了个递归