vant3 list 的坑

vue3使用vant4的列表vant-list点击进入详情自动滚动到对应位置,踩坑日记(一天半的踩坑经历) 【代码】vue3使用vant4的列表vant-list点击进入详情自动滚动到对应位置,踩坑日记(一天半的踩坑经历) 阅读详情

使用vant的时候,在移动端使用最多,就是list组件,几乎内容相关页面都需要一个list,触底加载,下拉刷新。虽然看到过一些文章,有点预防了,但是只有真正在项目中的时候才知道,为什么会犯错

最近在使用的时候碰到了一些坑:

1、List 组件一直调用接口

在一进入页面的时候,vant ui的List组件的onload触发机制是当内容触发到页面底部位置时,触发加载调用接口,直到finished.

解决方案:

1.设置immediate-check="false",不要加载组件的时候就开始加载数据;

immediate-check是否在初始化时立即执行滚动位置检查booleantrue

2.第一次稍微多请求一点数据,可以填满屏幕即可: 比如 设置 pageSize:15,让第一次进入页面不需要触发触底加载 

3.将List数据分成初始化数据和附加数据两部分,第一部分直接初始化,这时的分页可以根据页面高度算出pageSize;

2、List组件的finished处理问题

原来的逻辑:当数据长度大于或者等于后台返回总长度时设置finished=true,但是如果后端报错了或者是空数据的时候不设置finished=true,会导致一直向后端发送请求。

优化后: 添加上报错或者空数据的情况,给上 finished=true 设置

3. List组件加载动画错误

(1)onload在加载时只触发一次,页面向下滚动时,onload并不加载,你可以在获取数据的时候手动在前面给组件设置上 loading

 (2)一直显示加载中,无法关闭,这时你要在获取数据里面做一个判断,判断数据是否已经全部获取,获取了就给 finished = true,即关闭加载。

4. 连续请求2,3次

(1)offset过于高,默认的高度是300,有一次获取数据一次只获取5条,虽然覆盖了页面高度,但稍作触碰就会二次发送.

(2)请求的数据过少,请求的数据不足以覆盖页面就会二次加载,可以看文档list第一条示例便是.

5.定位问题

<van-list
    class="listBox"
	v-model="loading"
	:finished="finished"
	finished-text="没有更多了"
	@load="onLoad"
	offset="300"
	:error.sync="error" 
	error-text="请求失败,点击重新加载"
	>
   <div v-for='(item, index) in list' :key="index"> 
   		<div>{{item.tit}}<div>
   </div>
 </van-list>  

比如这个list给了 listBox 的类名,最好不要使用定位,浮动之类的css,可能造成高度错误,list整个组件也就不能用了

官网list组件详解:List 列表 - Vant 3 (gitee.io)

Vue3.0 + Vant 实战:打造高效列表页的下拉刷新与上拉加载功能 本文详细介绍了如何在Vue3.0项目中,使用Vant组件库的van-pull-refresh和van-list组件,高效实现移动端列表页的下拉刷新与上拉加载功能。内容涵盖环境搭建、核心组件详解、实战避坑指南及性能优化技巧,帮助开发者打造流畅的列表交互体验。 阅读详情

相关推荐

【踩坑记】vant-ui中van-list组件手机滚动加载不生效或刚进页面就执行全部一直调接口

踩坑,vant-ui中van-list组件手机滚动加载不生效或杠精页面就执行全部一直调接口

m0_51614469的博客 1404

Vant List组件下拉加载的5个实战避坑点(附Vue3+TS完整代码)

本文详细解析Vant List组件在Vue3+TS项目中实现下拉加载时常见的5个实战问题,包括loading状态重置、immediate-check误用、数据合并竞态等,提供完整解决方案和代码示例。特别针对重复加载问题,给出避免首屏数据多次请求的最佳实践。

weixin_30755393的博客 337

APP开发-Vue3+vant实现数据列表下拉分页功能

一、需求分析 1、数据列表页面初始化显示十条数据,当用户下拉页面的时候会再自动请求十条数据,如果数据加载完成,显示提示信息’已经到底了’ 二、 分页效果图 从动图中我们可以看出页面在下拉的时候会自动触发数据请求,在右边的Network栏中,我们可以监测它是往后台发送请求的,而其currentPage代表的请求页数每次也会自动加一。 三、后台分页逻辑 当我们数据列表数据量大的时候,我们一般都会采用分页的展示。怎么样实现分页?首先,前台我们要告诉后台,我们需要请求第几页数据,并且把每页展示的数据量告诉我。

不觉晓晓的博客 4689

Vant中List组件immediate-check=false无效

一,现象 已经设置List组件immediate-check=false,但是在进入页面的时候,还是会触发list组件的onLoad方法,发送第一次请求。 二,原因 假设首页是A,列表页是B。当A页面的内容超过一个屏幕,并且滚动条出现了(即滚动条向下滚动了一段距离。)然后再跳转列表页。就会直接触发List组件的onLoad方法。 这是因为第一个页面A和第二个页面B,所监听的滚动条都是html或者body上的滚动条。这就会干扰。 三,解决方案 把b页面的放置到自己的容器中,让他不产生全局的滚动条。即可: .

weixin_42349568的博客 1952

别再死磕NFP了!用Python+遗传算法搞定异形件自动排版(附完整代码)

本文介绍了如何利用Python和遗传算法实现异形件智能排版,解决传统NFP方法计算复杂的问题。通过Shapely库处理几何运算和DEAP库搭建遗传算法框架,结合模拟退火策略避免局部最优,显著提升材料利用率。附完整代码和优化技巧,适用于服装裁剪、金属加工等行业。

weixin_26965807的博客 230

Dify插件离线部署全攻略:从下载到安装的完整流程

本文详细介绍了Dify插件离线部署的完整流程,针对企业内网等无网络环境需求。核心步骤包括在联网环境下载插件包、在特定Python 3.12.9环境下使用专用工具进行离线重打包,以及最终在离线Dify环境中安装验证。重点解决了离线安装的核心难题,并提供了环境配置、批量处理和故障排查等实用技巧,帮助用户实现Dify插件的顺利离线部署。

seed的博客 651

van-list immediate-check设置为false无效的问题

最近在使用van-list组件开发带有tab切换的项目,需求是tab是后端返回的数据,所以获取列表数据要在tab返回之后调用,所以进入页面时默认不触发van-list的load事件,官方文档说明:如下图所示: 组件配置如图所示: 但是我们这样设置完成之后,刚刚进入页面是没问题的,当我们切换tab时还是会触发load事件多次,因此我的解决方案是: 根据有无数据使用v-if来控制van-list是否展示,因为有时候页面初始化没有数据时vant-list也会触发一次 完美解决多次触发load事..

vscode_js的博客 1131

Cadence元件库介绍

Cadence安装完之后,在安装目录下,会有默认自带的一些常用元件库。例如,我的Candece安装目录为: D:\Cadence\Cadence_SPB_17.2-2016 元件库所在目录为: D:\Cadence\Cadence_SPB_17.2-2016\tools\capture\library 各个元件库对应的内容如下: AMPLIFIER.OLB 共 182 个零件,存放模拟放大器 IC,如 CA3280,TL027C,EL4093 等。 ARITHMETIC.OLB 共 182 个零件,存放

年少时的棉花糖 1万+

Vant的List组件列表 滑动后不触底也发送请求的Bug

Vant的List组件列表+PullRefresh 组件实现下拉刷新和List列表滑动屏幕到底部时发送请求效果。把van-list和van-pull-refresh添加成组件,由于改需求在许多页面都可以使用到,组件名称提取为,list是传递的商品集合,在通过插槽的显示由父页面来定义渲染的样式这个插槽是使用for把商品集合遍历,并且每个div一个商品我们可以使用把div转为行内块这样我们也可以完成需求,只要不出问题的方案就是好方案。

Itmei的博客 1911

1.47寸ST7789V3彩屏硬件设计与驱动调试指南

TFT LCD是一种基于薄膜晶体管阵列控制像素明暗的主动式显示技术,其核心依赖于专用驱动IC(如ST7789V3)完成时序生成、GRAM管理与伽马校正。该类小尺寸彩色显示屏广泛应用于嵌入式HMI、IoT终端与可穿戴设备,具备高PPI、低功耗和SPI接口易集成等工程优势。理解RGB565数据格式、SPI Mode 0通信时序及关键寄存器(如0x36方向控制、0x3A像素格式、0x2A/0x2B地址窗口)是实现稳定显示的基础;而正确处理电源设计(严禁5V直供)、复位时序与背光PWM调光,则直接决定系统可靠性与能

weixin_30995917的博客 161

Carla自动驾驶仿真一:快速安装与运行Carla

网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程,写的也比较详细,基本不用看其他文章。

zataji的博客 2万+

van-list :immediate-check=false失效

场景:先回去分类,根据分类获取列表,不需要进入列表就立即获取列表 解决办法:finished: true

周18的碎碎念 453

eNSP搭建基础网络

1、除5的环回地址固定以外,整个其他所有网段基于192.168.1.0/24进行合理的IP地址划分 2、R1-R4每个路由器存在两个环回接口,用于模拟连接pc网段﹔地址也在192.168.1.0/24这个网络范围内 3、R1-R4上不能直接编写到达5.5.5.0/24的静态路由,但依然可以访问 4、全网可达,尽量减少每台路由器,路由表条目数量,避免环路出现5R4与R5间,正常100oA链路通信,故障时自动改为100M 全网使用192.168.1.0/24网段进行划分,尽量减少路由条目Pc端IP使用pHcP技

在月光下棕榈树的叶子在瑟瑟抖动 8454

vue3中列表使用van-list数据调用了两次解决方法

onMounted不调用数据接口getData。请求数据时参数size写的条数多一些。因为请求数据过少,覆盖页面不足就会二次加载数据。设置:immediate-check="false"还是有问题。finished-text="没有更多了"

erduoduo520的专栏 1355

3、流程引擎下载安装与部署

camunda有多种使用方式,此处先使用独立平台的方式部署引擎,这种用法适合分布式,微服务化,多语言异构系统的使用方式。

leyoliu的博客 5517

matlab 点云按高程进行赋色【2024最新版】

首先按照Z轴方向求取所在点云的高程极值(包括高程最大值与最小值),然后将高程归一化到0~255范围内,最后采用matlab中的colormap颜色渲染函数进行赋色并保存渲染结果到点云。

点云侠的博客 3337

vant3 中使用List组件的一些坑

Vant 是一个基于 Vue.js 框架的移动优先 UI 工具包。Vant 是一个基于 Vue.js 构建的轻量级移动 UI 组件库,它的设计易于使用和可定制,这使其成为构建移动应用程序的不错选择。Vant 提供了广泛的组件,包括按钮、表单、列表、模态框等,旨在与 Vue.js 无缝协作,帮助开发人员快速构建高质量、交互式的移动应用程序。Vant3 是 Vant 的最新版本,使用 TypeScript 构建,提供更稳定、更强的开发体验。

qq_38334677的博客 2193

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vant3 List 组件的一些坑

使用vant3 List 组件过程中遇到的一些坑 1、接口错误的时候,大量重复请求。 可能接口错误时vant3内部某些变量没重置,导致一直重复请求,解决方法是接口返回不成功finished设置成true 2、没有发起请求 <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getData" offset="50" v-if="

supming1的专栏 1480

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Vue3 + Vant4 列表页返回定位终极方案:keepAlive与onActivated实战避坑指南

本文详细解析了Vue3与Vant4结合开发时,如何利用`keepAlive`和`onActivated`实现列表页返回定位的终极解决方案。通过实战案例和避坑指南,帮助开发者解决滚动位置丢失问题,提升移动端SPA应用的用户体验。重点介绍了与`vant-list`组件的深度整合及常见问题排查方法。

weixin_29009669的博客 339

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用Vant框架list组件遇到的坑

介绍 Vant 是有赞前端团队开源的移动端组件库,于 2017 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。 特性 提供 60 多个高质量组件,覆盖移动端各类场景 性能极佳,组件平均体积不到 1kb(min+gzip) 单元测试覆盖率 90%+,提供稳定性保障 完善的中英文文档和示例 支持 Vue 2 & Vue 3 支持按需引入 支持主题定制 支持国际化 支持 TypeScript 支持 SSR 快速配置和具体介绍请去官

weixin_43805248的博客 5694

vant4.0+vue3.0 遇到的那些坑

vant4.0+vue3.0 实现van-picker 初始化时默认选中指定选项。vant3.0 实现选中默认选项 defaultIndex。这个selectedValues 的值必须是数组。必须是v-model这种写法,不能改成:value。其实是list+下拉刷新的组合。直接配置这个属性就可以。

weixin_42994352的博客 477

app开发使用vant组件之van-list

本篇给那些初试app开发的码农,大佬如果有建议,欢迎留言~~首先开发app会有多种方式,html+各种框架,vue-cli脚手架+各种依赖。脚手架的话,直接在vant官网教程里就有,vant官网地址Vant 3 - Mobile UI Components built on Vue 上边是两种安装依赖方法,可自行去官网查看,这里有个问题需要说一下,vue3有可能你在创建项目的时候规定用es6写法,这个时候会报is notdefind,然后查找之后发现是vant里边有es5的写法,这个时候用npm unins

Qiubaozhen的博客 2436

处理vant list使用报错的点

1.使用vant-list在滚动条触底的时候,没有触发onLoad事件 可能是因为在van-list父元素的地方设置了父元素高度为100%,这里不能这样设置, 还有就是可能对需要遍历的数据,在每一次触底时,都进行了初始化 2.有时候在tab标签切换后,滚动条不再触发onLoad事件 解决方法是,在切换标签函数后,加上 this.loading=true this.finished =false 3.下拉刷新时,数据一直在加载中, 这是因为少写了,this.refreshing = false; 有时候把这条

weixin_48687415的博客 3733

html中使用vant的van-list列表懒加载

使用van-list标签将需要进行懒加载的内容包住 <van-list class="activity" v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> <div class="activity_cont" v-for="(item,index) in activitylist" :key="index">

hy3528的博客 5842

5分钟摸清电脑硬件监控:LibreHardwareMonitor 入门指南

LibreHardwareMonitor 是一款免费、以 MPL 2.0 开源协议发布的硬件监控工具(Open Hardware Monitor 的社区分支)。装完打开,它把电脑里所有温度、风扇转速、电压和频率读成一棵硬件树给你看,还能反向调节风扇转速。 ## 📊 核心能力:四类读数一眼看穿 - 温度:CPU 按核心逐个读出,GPU 覆盖 NVIDIA、AMD、Intel 三家加核显,新显卡

gitblog_00724的博客 401

vant中list列表组件使用

<van-list v-model="loading" // 是否显示正在加载状态 :finished="finished" // 是否已经加载完成 finished-text="没有更多了" // 加载完成提示文案 @load="onLoad" // 滚动条与底部距离offset时触发事件 offset="300" // 滚动条与底部距离offset时触发@load(默认.

weixin_55633731的博客 3276
上一篇: uView tab切换组件 吸顶
下一篇: 使用 for of 自定义遍历对象
paidaboluo
博客等级 码龄6年 13粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值