• 解决页面上数据量过大、dom过多导致渲染卡顿的问题---DOM懒加载(vue3)


    使用技术:Intersection Observer API

    Intersection Observer API:这是一种新的浏览器 API,可以用于监听元素进入或离开视口。通过监听元素是否进入视口,我们可以判断何时加载元素。使用 Intersection Observer API 实现 DOM 懒加载非常简单,只需要创建一个观察器对象,并将需要观察的元素传递给它即可。

    1. <template>
    2. <div>
    3. <div class="card px-10 mt-20" v-for="(item, index) in detailList" v-if="detailList.length > 0">
    4. <div class="flex flex-start gap-5 border-b py-5">
    5. <div class="w-2 h-10 mt-5 bg-[#FDCC0D]">div>
    6. <div>{{ item.Question }}div>
    7. div>
    8. <v-md-preview :text="item.Answer" left-toolbar="undo redo | emoji" v-if="item.Answer != null && item.Answer != ''" class="mt-10 pb-10" ref="preview">v-md-preview>
    9. div>
    10. div>
    11. template>
    1. const previews:any = ref([])
    2. onMounted(() => {
    3. const options = {
    4. rootMargin: '0px',
    5. threshold: 0.1,
    6. }
    7. const observer = new IntersectionObserver((entries, observer) => {
    8. entries.forEach(entry => {
    9. if (entry.isIntersecting) {
    10. const preview = entry.target
    11. preview.$refs.preview.init()
    12. observer.unobserve(preview)
    13. }
    14. })
    15. }, options)
    16. previews.value = document.querySelectorAll('.v-md-preview')
    17. previews.value.forEach((preview:any) => {
    18. observer.observe(preview)
    19. })
    20. })

  • 相关阅读:
    javascript的深浅拷贝
    HelloKitty 代码 Python
    Kubeadm极速部署Kubernetes 1.24版本集群
    JVM内存模型之深究模型特征
    java计算机毕业设计考试编排管理系统(附源码、数据库)
    国密浏览器介绍与下载
    C#中事务的操作
    Java项目:SSM建材商城网站
    Codeforces Round #820 (Div. 3)
    SpringMVC简介
  • 原文地址:https://blog.csdn.net/weixin_60886885/article/details/133928574