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

0元试用网站开发seo外链建设

0元试用网站开发,seo外链建设,郑州微网站建设,WordPress手机APP源码前面咱完成了自定义JuanTree组件各种功能的实现。在数据量很大的情况下,我们讲了两种实现方式来提高渲染性能:前端分页和节点数据懒加载。 前端分页小节:Vue3扁平化Tree组件的前端分页实现 节点数据懒加载小节:Element Tree Plu…

前面咱完成了自定义JuanTree组件各种功能的实现。在数据量很大的情况下,我们讲了两种实现方式来提高渲染性能:前端分页和节点数据懒加载。

前端分页小节:Vue3扁平化Tree组件的前端分页实现

节点数据懒加载小节:Element Tree Plus版功能演示:数据懒加载

关于扁平化结构Tree和嵌套结构Tree组件的渲染

嵌套结构的Tree组件是一种递归渲染,性能上比起列表结构的v-for渲染比较一般。对于这种渲染方式,在数据量很大的情况下,只有通过懒加载可以提高渲染性能;而扁平化结构则有更多的选择,前端分页是一种方式,还有一种更好的选择,就是本节介绍的虚拟滚动。

在这里插入图片描述

下一小节,我们将对自定义JuanTree组件来应用虚拟滚动,解决数据量非常大的情况下的用户体验良好的高性能渲染。本小节讲原理和基本demo的实现,喜欢的点个赞,关注下,后续会更精彩!

功能演示

在这里插入图片描述

虚拟滚动的原理

在这里插入图片描述

demo实现

编写vitepress示例

在这里插入图片描述

滚动条的实现

考虑到原生滚动条太丑,我们使用element-plus提供的el-scrollbar组件,因为它简单好用且展示也很美观。

element plus在基于vite的vue3 tsx项目的整合请参考:vite tsx项目的element plus集成 - 按需引入踩坑

demo示例源码

src/components/VirtualList.vue

实现非常简单易懂!

<script setup lang="ts">
import { computed, ref } from 'vue'const containerHeight = 24 * 12 // 容器高度
const itemHeight = 24 // 列表项高度
const visibleCount = Math.ceil(containerHeight / itemHeight) // 可视区域列表元素数量
const totalCount = 1000 // 列表元素总数
const data = ref(Array.from({ length: totalCount }).map((_, index) => ({ value: index })))
// 起始索引
const startIndex = ref(0)
// 可视区域的数据
const visibleData = computed(() => data.value.slice(startIndex.value, startIndex.value + visibleCount))
// 数据列表在Y轴的偏移量
const offsetY = ref(0)
const onScroll = (event: any) => {const scrollTop = event.scrollTop// 按照滚动的高度触发可视区域数据计算属性的重新计算。startIndex.value = Math.floor(scrollTop / itemHeight)// 同步更新数据列表元素translate3d样式y轴的偏移量,确保其始终与视口的最上端对齐offsetY.value = scrollTop
}
</script><template><el-scrollbar class="vl-container" :height="containerHeight" @scroll="onScroll"><div class="vl-wrapper"><!--  展示滚动条  --><divclass="vl-blank":style="{height: `${totalCount * itemHeight}px`}"></div><!--  数据列表 --><divclass="vl-data":style="{transform: `translate3d(0, ${offsetY}px, 0)`}"><div class="item" v-for="(item, index) in visibleData" :key="index">Item {{ item.value }}</div></div></div></el-scrollbar>
</template><style scoped lang="scss">
.vl-wrapper {position: relative;.vl-blank {position: absolute;top: 0;right: 0;left: 0;}
}
</style>
http://www.yayakq.cn/news/592724/

相关文章:

  • 制作一个购物网站需要多少钱哈尔滨网站建设设计公司
  • 金融直播间网站建设本地专业app开发公司
  • 公司网站建设成本中国电信视频app下载
  • 做网站和域名wordpress 七牛插件代码
  • 绵阳企业品牌网站建设法治建设网站模块名称
  • 计算机开发工具有哪些泉州做网站优化公司
  • 上网站建设房产网站怎么做才能吸引人
  • 有什么做美食的网站上海 企业网站制
  • 电商网站建设赏析线上商城如何推广
  • 网站空间后台密码做电影资源网站服务器怎么选
  • wordpress 直播网站大型门户网站建设服务
  • 深圳建网站价格知末网室内设计效果图
  • 北京企业网站制作哪家好全网最低价查询网站
  • 小规模开普票网站建设几个点筛网怎么做网站
  • 济宁网站建设云科网络如何看网站建立时间
  • 网站推广究竟应该怎么做wordpress缺少主题样式
  • 简洁个人博客网站模板下载官方网站下载微信
  • 怎么注册自己的微信小程序关键词优化排名易下拉软件
  • 苏州商城网站建设电话吕梁网站建设
  • 微商城网站建设服务好网站目录
  • 有没有做软件的网站万维网域名注册网站
  • 网站关键词的优化在哪做湘潭seo 推广快湘潭磐石网络
  • 网站开发要注意的问题域名注册长沙有限公司
  • 做网站的成本有多少钱网站空间不足
  • 网站建设自助建站制作长沙做企业网站
  • 重庆慕尚网站建设广安做网站
  • 网站上传图片问题音乐网站要怎么做
  • 湖南大型网站建设公司织梦建站教程视频
  • 浪漫网站建设免费ppt模板下载 清新
  • 装饰公司网站源码怎样做带音乐的表白网站