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

医院系统网站建设上市公司网站建设报价

医院系统网站建设,上市公司网站建设报价,南京网站搜索引擎优化,台州有哪些做网站的公司文章目录 实现的背景实现思路vue3实现代码注意 实现的背景 element ui 的table 没有提供下拉加载后续数据的功能,前端要想优化,要么做分页,要么做数据下拉追加。当数据太多,比如有上千条的时候,一次性渲染出来&#x…

文章目录

    • 实现的背景
    • 实现思路
    • vue3实现代码
    • 注意

实现的背景

element ui 的table 没有提供下拉加载后续数据的功能,前端要想优化,要么做分页,要么做数据下拉追加。当数据太多,比如有上千条的时候,一次性渲染出来,会降低首屏加载时间,也会让页面滚动变得卡顿。

实现思路

将table组件的滚动dom找出来,对它做滚动监听,当滚动条快要到底的时候,追加100条数据。追加后,滚动条会上升,等待下一次触发快要到底的时候,追加100条数据。

vue3实现代码

<template><!-- 表格 --><div class="table-container" ref="tableContainer"><el-table:max-height="maxHeight":data="renderData"v-loading="loading":empty-text="'暂无数据'":style="style"><el-table-columnv-for="column in tableColumn" :key="column?.label"v-bind="{...column}"></el-table-column></el-table></div>
</template><script lang="ts" setup name="customTable">const props = defineProps({tableData: {type: Array,default: () => [],},tableColumn: {type: Array<any>,default: () => [],},loading: {type: Boolean,default: false,},style: {type: Object,default: () => {},},maxHeight: {type: [String, Number],default: 700,},});// 下滑懒加载const tableContainer = ref(null); // 需要通过它来定位table有滚动条的dom,因为一次可能渲染很多个table,我们不能直接找那个有滚动条的tableconst pushCount = ref(1); // 追加数据的次数const renderData = computed(() => {return props.tableData.slice(0, pushCount.value * 100); // renderData为渲染的实际数据,pushCount变化会重新计算render的数据});const handleScroll = (event) => {const target = event.target as HTMLElement;// 判断滚动条是否快要到底了,距离底部还剩700px左右时,就要开始追加了,700为buffer值if (target.scrollHeight - target.scrollTop - target.clientHeight <= 700) {// 每一次追加都需要判断,是否还有要追加的数据,如果已经到底了,就没必要追加数据了if(renderData.value.length < props.tableData.length) {pushCount.value += 1;}}}// 把scorllBody放在这个位置,是为了方便onUnmounted时候,取消掉scroll的监听  let scrollBody// 有时候接收的tableData可能是变化的,一开始不到100,后来超过100,再后来又变成300,通过hasHandleScroll,来限制一个table最多只能加一个滚动	监听let hasHandleScroll = falseonUnmounted(() => {hasHandleScroll = falsescrollBody.removeEventListener('scroll', handleScroll, false)})// 通过对props.tableData的监听,来判断是否需要开启滚动监听,可能一开始不到100,后来就超过100了,需要加监听watch(() => props.tableData, () =>{nextTick(() => {const container = tableContainer.value as any;scrollBody = container?.querySelector('.el-scrollbar__wrap')// 需要判断一下scrollBody 是否已经有了滚动监听if(props.tableData.length >= pushCount.value * 100 && !hasHandleScroll) {scrollBody.addEventListener('scroll', handleScroll, false)hasHandleScroll = true}})},{immediate: true})</script><style lang="scss">
</style>

注意

还有更多优化的空间
比如handleScroll可以通过防抖封装一下,但时间间隔不要太大,最好在50ms内。

比如每一次tableData变化时,最好先判断一下,是否需要取消监听scroll。因为有可能最开始超过100,后来又少于100,但少于100以后,如果滚动条仍存在,其实scroll监听仍然存在,这个时候其实不需要监听了。

这种优化方案,仍然不足,当用户有足够耐心,将所有数据加载完了,往上滚动时,页面仍然可能会卡顿。这个时候需要使用虚拟列表的方式来实现优化,而不仅仅只是下拉懒加载。下拉懒加载是虚拟列表的一部分。

如果是pc端,最好用分页,但如果是移动端,分页对用户的体验就不太友好。


文章转载自:

http://jcaz2gwN.hmwjk.cn
http://WyTFGeXG.hmwjk.cn
http://JRE3jiRo.hmwjk.cn
http://WCwhVlWF.hmwjk.cn
http://0710gP1y.hmwjk.cn
http://pBkEreqi.hmwjk.cn
http://omlIS5WG.hmwjk.cn
http://VFvkQA4W.hmwjk.cn
http://nDrnU19u.hmwjk.cn
http://Jq3FEbzn.hmwjk.cn
http://UTCXSLyd.hmwjk.cn
http://L8XtthlM.hmwjk.cn
http://yUZK7tn8.hmwjk.cn
http://XiyCb6zw.hmwjk.cn
http://QF7wurUb.hmwjk.cn
http://hZrbLrZ1.hmwjk.cn
http://65yaGtvq.hmwjk.cn
http://J9rzCB3i.hmwjk.cn
http://qsWlsPEy.hmwjk.cn
http://WS7lr2G5.hmwjk.cn
http://evUXJob3.hmwjk.cn
http://TSv6PQPx.hmwjk.cn
http://iLUODYzr.hmwjk.cn
http://qcqJ2fwO.hmwjk.cn
http://gMcltUP4.hmwjk.cn
http://TmwDXMHD.hmwjk.cn
http://p0RemgNW.hmwjk.cn
http://ZOYcLUcT.hmwjk.cn
http://aNgtJn5w.hmwjk.cn
http://cnHZsKrU.hmwjk.cn
http://www.dtcms.com/wzjs/667929.html

相关文章:

  • 茂名市城市建设档案馆网站多少钱的英文怎么写
  • 网站托管怎做外贸建站公司排名
  • 如何做一个好网站wordpress主题开发导航制作
  • 网站运营推广主要做什么的pc三合一网站
  • 西安网络营销学习网站河南省建设厅官方网站 吴浩
  • 湛江哪家公司建网站最好鞍山市住房和城乡建设网站
  • 淘宝客网站制作视频教程英雄联盟视频网站源码
  • 免费资料网站网址下载做外卖那些网站好
  • 做板子焊接的网站的公司名字确定建设电子商务网站目的
  • 招聘网站做一下要多少钱加盟型网站制作
  • ps扩展插件网站互联网网站建设价格
  • 织梦的网站关键词商标设计怎么收费
  • 电脑做视频的网站比较好手机编程工具
  • 6做网站网站建设初步认识的实训体会
  • 兰州装修公司哪家口碑好seo排名的方法
  • html手机网站如何制作网站建设和运维单位责任
  • 泰兴企业网站建设大型网站建设定制开发
  • 白家乐网站怎么建站wordpress手机版本
  • php如何网站做修改怎么联系网站开发团队
  • 莱芜环保网站湖南餐饮网站建设
  • 怎样凡科建设网站新增备案网站负责人
  • 广州网站建设公司哪个好国字型网页布局图片
  • 网站开发线上有什么好的书写网站
  • 中国招标建设信息网站乐清城市网
  • 大航母网站建设服务网络营销方法的分析与应用
  • 绵阳集团网站建设wordpress建站手机端
  • 找人做网站要密码吗湖北网站建设找哪家
  • 服务商是什么意思seo博客网站
  • 网站建设的初步预算余姚做网站哪家好
  • 销售 网站大连网站seo