vue3+element-plus 通过v-infinite实现下拉滚动无限加载

news2024/9/25 21:20:05

v-infinite官网

v-infinite-scroll无限滚动组件使用详解

 1、v-infinite-scroll="load" //load无限滚动加载的方法
 2、infinite-scroll-disabled //是否禁用无限滚动加载
 3、infinite-scroll-delay //节流时延,单位为ms
 4、infinite-scroll-distance //触发加载的距离阈值,单位为px
 5、infinite-scroll-immediate //是否立即执行加载方法,以防初始状态下内容无法撑满容器。
 //默认情况下,infinite-scroll-disabled是false,因此如果组件使用无限滚动加载组件,即使在vue不进行加载方法的调用,组件也会调用该方法,因此如果需要控制的话,尽量是使用infinite-scroll-disabled属性来进行加载方法是否调用的控制。

 官网给到的基础案例:

<template>
  <ul v-infinite-scroll="load" class="infinite-list" style="overflow: auto">
    <li v-for="i in count" :key="i" class="infinite-list-item">{{ i }}</li>
  </ul>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const count = ref(0)
const load = () => {
  count.value += 2
}
</script>

<style>
.infinite-list {
  height: 300px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.infinite-list .infinite-list-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  background: var(--el-color-primary-light-9);
  margin: 10px;
  color: var(--el-color-primary);
}
.infinite-list .infinite-list-item + .list-item {
  margin-top: 10px;
}
</style>

自己写了一个简单的demo:


<div>
     <el-select v-model="value" style="margin-right: 20px" v-if="isMounted">
        <div v-infinite-scroll="load" infinite-scroll-immediate="false" style="overflow: hidden"></div>
         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
     </el-select>
</div>



<script setup>
const value = ref('')
let options = reactive([{
  value: "aaa",
  label: "atext"
},
{
  value: "bbb",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "cccc",
  label: "atext"
}, {
  value: "ddd",
  label: "dtext"
}, {
  value: "yyyy",
  label: "dtext"
}
])
const load = () => {
  options.push({
    value: "xxxx",
    label: "xtext"
  })
}
const isMounted = ref(false);
onMounted(() => {
  isMounted.value = true;
});
</script>

当使用v-infinite时,控制台会报错:

 原因:

官方上的Issues解释是需要nextTick()之后再去显示
解决方法是组件挂载完成再去显示el-select组件

所以在上面demo中select组件加了v-if,并且在onMounted中将其再显示出来。

报错解决问题是掘金上的一位大哥的方法,原文地https://juejin.cn/post/7095925947412512804

 

 上面el-select组件的下拉加载,看完可能会有两个疑问,一个是为什么el-option不写在v-infinite-scroll标签内部,二是为什么v-infinite-scroll 所在的标签的overflow属性不是和官网一样的atuo,二是hidden,因为在此案例中放到内部或不放在内部效果一样的,最核心的是如果此案例中,并没有给v-infinite-scroll所在的标签设置高度,理应是下拉加载会失效,但是如果是hidden的话,并且此时高度为0,那么只要鼠标滚轮滑动,那么就会触发下拉加载,

总结下拉就是,此案例效果是打开下拉框,只要滑动滚轮就触发下拉加载,二官网那种标准案例,是滚轮滑动到底部才会触发下拉加载。

如果是官网那种标准做法需要注意:使用v-infinite-scroll的元素设置overflow: hidden以及固定高度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解Java Class文件格式 constant_UTF_info

首先&#xff0c; 让我们回顾一下关于class文件格式的之前两篇博客的主要内容。 在 深入理解Java Class文件格式&#xff08;一&#xff09; 中&#xff0c; 讲解了class文件在整个java体系结构中的位置和作用&#xff0c; 讲解了class文件中的魔数和版本号相关的信息&#xff…

GitHub上“千金难求”的Spring Boot趣味实战全彩版手册,太干了

本书内容极其丰富&#xff0c;不仅涵盖了Spring MVC、MyBatis Plus、SpringData JPA、Spring Security、Quartz等主流框架&#xff0c;整合了MySQL、Druid、Redis、RabbitMQ、Elasticsearch等互联网常用技术与中间件&#xff0c;还涉及单元测试、异常处理、日志、Swagger等技术…

Vue——Vue2项目开发流程以及Element组件库的使用

Vue项目开发流程&#xff08;Vue2演示&#xff09; 在使用Vue提供的脚手架创建的项目文件里面&#xff0c;可以看见引入了三个组件 一个是Vue组件&#xff0c;有了这个下面才可以新建一个Vue实例 一个是App组件&#xff0c;下面将其使用一个render函数打包成了一个DOM元素放…

Redis分片集群和亿级访问量数据处理

一、redis分片集群 1.简介 业务场景&#xff0c;需要存储50G的数据。对于内存和硬盘配置不足&#xff0c;选用两种方式 一种&#xff1a;纵向扩展&#xff1a;加内存&#xff0c;加硬盘&#xff0c;提高CPU。简单、直接。RDB存储效率要考虑。成本要考虑。 二种&#xff1a;横…

016+limou+C语言常用的32个关键字

0.前言 本博文是在对C语言有一定深入了解后&#xff0c;对C语言最为主要的32个关键字进行了简要的概述和一些容易被忽略的细节研究&#xff0c;您可以当作学习或复习C语言基础使用&#xff08;毕竟关键字就是构成C语言语法的基石&#xff09;&#xff0c;也可以提出您所不认同…

java版企业电子招投标采购系统源码之首页设计

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部…

易岸教育:公务员两科目考试内容是什么?

&#xff08;一&#xff09;《行政能力测验》 《行政能力测验》分为常识判断、言语理解与表达、数量关系、推理判断、资料分析五大部分。 1、常识判断题共20道题&#xff0c;涵盖面广&#xff0c;内容丰富&#xff0c;可归纳为自然科学、社会科学、时事热点三大类。 2、语言…

风扇的气动性能简介

1 风扇的定义 & 分类 风扇是很常见的设备&#xff0c;应用于通风、设备散热等多种场景&#xff0c;典型如家用的电风扇、抽风机&#xff0c;各类电子设备的散热风扇等。 风扇是通过外力驱动叶片旋转引发气体运动的设备。根据AMCA Standard 210-16的规定&#xff0c;风扇对气…

一个滑模控制(SMC)实例及仿真

被控对象 考虑这么一个被控对象 J θ ( t ) u ( t ) d ( t ) J \ddot\theta(t) u(t) d(t) Jθ(t)u(t)d(t) 其中&#xff0c; J J J 为转动惯量&#xff0c; θ \theta θ 为角度&#xff0c; u u u 为控制量&#xff0c; d d d 为扰动&#xff0c;且 d ( t ) < D d(…

联想天逸510S-i5电脑如何重装windows系统

如果你的联想天逸510S-i5电脑出现了系统故障、病毒感染、运行缓慢等问题&#xff0c;你可能需要重装系统来解决。但是&#xff0c;联想天逸510S-i5电脑如何重装windows系统呢?本文将为你介绍两种方法&#xff1a;用U盘重装系统和用联想系统自带的重置功能。 ​ 联想天逸510S…

天气预报查询 API 提供个性化的天气服务的设计思路

引言 假设你是一个开发人员或公司&#xff0c;正在考虑开发一款天气应用程序&#xff0c;但你意识到市场上已经有很多竞争者在使用天气预报查询 API 来提供类似的服务&#xff0c;本文将一起探寻一些创新的方法来提高应用程序的竞争力。 扩大竞争力的一些建议 如果市面上已经…

java企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

OpenWrt SDK 制作与使用

OpenWrt SDK 制作与使用 参考资料&#xff1a;https://openwrt.org/docs/guide-developer/toolchain/using_the_sdk SDK 制作 make menuconfig 选中 SDK 然后编译 编译完后&#xff1a; bin/targets/sunxi/cortexa7/openwrt-sdk-sunxi-cortexa7_gcc-10.2.0_musl_eabi.Linux…

搭建大型分布式服务(四十六)利用mockito不启动SpringBoot项目下进行单元测试

系列文章目录 文章目录 系列文章目录前言一、本文要点二、开发环境三、编写真实类四、编写测试类四、小结 前言 SpringBoot支持集成Mockito做单元测试&#xff0c;有时候SpringBoot有很多外部依赖&#xff0c;在本地很难启动或者启动时间很长&#xff0c;而我们只想对某个方法…

Lattics ——一款简单易用、好看强大的知识管理工具

如何选择一款适合自己的知识管理工具&#xff1f; 对于很多用户而言&#xff0c;在追求效率的路上&#xff0c;经常需要一款适合自己的知识管理工具。然而&#xff0c;随着工具市场的发展&#xff0c;各种新兴工具层出不穷。在传统领域&#xff0c;有印象笔记、Onenote 为代表…

ChatGPT实现知识图谱生成

知识图谱生成 在之前章节中&#xff0c;我们尝试过让 ChatGPT 对一段文本做实体识别和词性分析&#xff0c;结果很不错。但如果是需要长期留存下来&#xff0c;后续在不同场景下快速查询分析&#xff0c;最好还是要把数据存入到专门的图数据库中&#xff0c;才能方便随时读取。…

SpringCloud学习(八)——Docker

文章目录 1. 认识Docker1.1 容器1.2 Linux容器1.3 Docker 2. 配置Docker2.1 安装Docker2.2 启动Docker2.3 配置镜像加速 3. Docker镜像操作3.1 拉取镜像3.2 镜像的打包和加载3.3 查看帮助文档 4. 容器命令4.1 运行容器4.2 进入容器4.3 数据卷 5. 自定义镜像5.1 Dockerfile语法5…

svo论文解读

SVO: Semi-Direct Visual Odometry for Monocular and Multi-Camera Systems 2016TRO MOTION ESTIMATION 1 Sparse Image Alignment 从上一帧的特征投影到当前帧&#xff0c;最小化重投影误差计算帧间位姿&#xff08;patch44&#xff09; 2 Relaxation Through Feature Alig…

Vue案例

1. 查询所有 1.1 采用dom方式&#xff0c;拼字符串操作写ajax请求 这种方法书写麻烦&#xff0c;采用Vue的方式书写 <script>//1. 当页面加载完成后&#xff0c;发送ajax请求window.onload function () {//2. 发送ajax请求axios({method:"get",url:"http…

利用ECharts实现winform中的可视化图表

利用ECharts实现winform中的可视化图表 背景思路第一步&#xff08;先搞一个能展示图表的html文件&#xff09;第二步&#xff08;封装到winform中&#xff09;第三步 写代码第四步 winfrom与html交互在html中增加方法 如下在winfrom中增加调用方法数据文件代码 完整的运行效果…