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

vue实现懒加载

滚动事件:@scroll="scroll" 

定义一个假数据: const data = Array.from({ length: 100 }, (_, i) => i + 1);

判断:如果 scrollTop + clientHeight >= scrollHeight,就意味着滚动条已经接近或到达容器的底部。

 引用 DOM 元素:const container = box.value;

开始显示10条:const mydata = ref(data.slice(0, 10));

<template>
  <!-- 大框 -->
  <div class="box" ref="box" @scroll="scroll">
    <div class="wrapper" v-for="(item, index) in mydata">
      我是内容{{ index + 1 }}
    </div>
  </div>
</template>

<script setup>
import { ref, nextTick } from "vue";
// 定义一个每次加载的条数
const loadNum = ref(10);
// 定义一个假数据
const data = Array.from({ length: 100 }, (_, i) => i + 1);
// 用于计数
let count = 1;
// 接取假数据前10条用于开始显示
const mydata = ref(data.slice(0, count * 10));
// 获取 box 盒子引用
const box = ref(null);
// 监听滚动事件
const scroll = async () => {
  // 获取盒子的高度
  const container = box.value;
  // 判断是否到底部
  const isAtBottom =
    container.scrollTop + container.clientHeight >= container.scrollHeight;
  if (isAtBottom) {
    count++;
    mydata.value = [...mydata.value, ...data.slice(count*10, (count+1)*10)];
  }
};
</script>

<style scoped>
.box {
  width: 320px;
  height: 350px;
  background-color: goldenrod;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: scroll;
}

.wrapper {
  width: 300px;
  height: 50px;
  background-color: gray;
  color: white;
  text-align: center;
  line-height: 50px;
  border-radius: 5px;
  margin-bottom: 10px;
}
</style>

 


http://www.kler.cn/a/421616.html

相关文章:

  • SpringMVC(二)
  • [node.js] [HTTP/S] 实现 requests 发起 HTTP/S/1.1/2.0 请求
  • idea 自动导包,并且禁止自动导 *(java.io.*)
  • idea打jar包或引入包
  • 计算机科学中的主要协议
  • 704. 二分查找 C++
  • 30分钟学会正则表达式
  • Wwise SoundBanks内存优化
  • renderExtraFooter 添加本周,本月,本年
  • 数据库——创建索引的原则
  • 学成在线day08
  • k8s 亲和性之Affinity
  • 《Python基础》之Pandas库
  • PostgreSQL认证培训需要什么条件
  • 上天入地,智能诊断,多语言支持,璞华IETM打造产品技术信息管理极致用户体验
  • Python虚拟环境管理工具:Pipenv
  • Linux-Ubuntu16.04摄像头 客户端抓取帧并保存为PNG
  • Golang教程第24篇(语言接口)
  • Meta-Llama-3-8B-Instruct 模型的混合精度训练显存需求:AdamW优化器(中英双语)
  • STM32G4系列MCU的Direct memory access controller (DMA)功能之一
  • 更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破
  • 删除 MySQL 的多余实例
  • Redis使用场景-缓存-缓存击穿
  • pytest(二)excel数据驱动
  • winform跨线程更新界面
  • 【Unity基础】Unity中Transform.forward的详解与应用