taro-ui-vue3 的虚拟列表组件VirtualScroll

这篇具有很好参考价值的文章主要介绍了taro-ui-vue3 的虚拟列表组件VirtualScroll。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目:taro3+vue3

用法:
<at-virtual-scroll
    bench="5"
    :height="listHeight"
    :items="fieldList"
    :item-height="itemHeight"
>
  <template #default="{ index, item }">
    <view :id="`merchant-item-${index}`"
        class="merchant-item f-l-c">
      <image class="logo" src=""></image>
      <view class="con">
        索引号-{{ index }}
      </view>
      <view
          class="navigator">
        <image class="img-navigator" src=""></image>
      </view>
    </view>
  </template>
</at-virtual-scroll>
参数

height — 列表容器高度
item-height — 列表item高度
items — 列表数据

注意点:item-height不能直接用设计稿里面的高度xxpx,要转成rpx, 而css里面item的高度用设计稿的高度,比如设计稿宽750px, item高200px,间距20px, 列表容器高度是81vh, 如果容器需要减去其他元素的高度,其他元素高也要转rpx

const itemHeight = computed(() => {
  return Math.ceil(Taro.getSystemInfoSync().windowWidth / 750 * 220)
})

const listHeight = computed(() => {
   return Taro.getSystemInfoSync().windowHeight * 0.81
})
效果:

taro-ui-vue3 的虚拟列表组件VirtualScroll,# Taro3,小程序,# taroUiVue3,微信小程序,taro-ui-vue3,虚拟列表
源码中每个item都是通过定位来显示的,第一个top为0,之后的是item-height * index, 所以item-height中要包含每个item的间隔

问题:

列表向下滚动没有问题,但是向上回滚时,节点不能和视图相对应

taro-ui-vue3 的虚拟列表组件VirtualScroll,# Taro3,小程序,# taroUiVue3,微信小程序,taro-ui-vue3,虚拟列表文章来源地址https://www.toymoban.com/news/detail-565671.html

到了这里,关于taro-ui-vue3 的虚拟列表组件VirtualScroll的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • taro vue3 ts nut-ui 项目

    查看 Taro 全部版本信息​ 可以使用  npm info  查看 Taro 版本信息,在这里你可以看到当前最新版本 使用命令创建模板项目: taro init 项目名 微信小程序自定义 TabBar 先安装 cnpm install pinia 以便解决 小程序的 页面首次加载 在 app.config.js 中设置 在  src 目录 下 pages 文件夹,在里

    2024年02月06日
    浏览(40)
  • vue+element-ui el-table组件二次封装实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题

    某些页面不做分页时,当数据过多,会导致页面卡顿,甚至卡死 一、固定一个 可视区域 的大小并且其大小是不变的,那么要做到性能最大化就需要尽量少地渲染 DOM 元素,而这个最小值也就是可视范围内需要展示的内容,而可视区域之外的元素均可以不做渲染。 二、如何计

    2024年02月10日
    浏览(64)
  • uniapp组件-ui-list列表

    目录 一、基本用法 二、显示图标或图片 三、右侧显示 switch/badge 四、使用插槽 官方示例:https://ext.dcloud.net.cn/plugin?id=24 列表组件可以在其中使用图标、略缩图或放置任何你想放的元素,使用场景如:导航菜单、列表、设置中心排版等 基于uni-list的聊天列表组件:https://blog

    2024年02月12日
    浏览(38)
  • Taro + vue3 + js + nutUI 框架中自定义tabbar的组件封装以及页面跳转的逻辑

    1.需求:   在H5 中需要封装一个自定义的tabbar 菜单跳转 通过nut-ui 进行二次封装 2. 注意点   H5 中原生的tabbar 在ios 中会出现问题 所以进行 封装tabbar 3. 代码操作 首先全部的代码  4.解析 tabList: 菜单的内容数组  根据自己菜单的数量 来决定 const tabList = reactivemenu[]([     {    

    2024年04月17日
    浏览(54)
  • Element-ui自定义组件:可折叠按钮列表

    1、工具栏的功能按钮要超宽不换行,宽度不够折叠进”更多“按钮; 2、下拉菜单按钮和纯图标按钮默认不折叠; 3、折叠前后按钮组顺序保持不变。 1、默认展开全量按钮,并对其宽度进行缓存; 2、循环计算展开按钮的总宽度 与 容器宽度 的差值,并进行按钮的折叠与释放

    2024年02月11日
    浏览(53)
  • vue长列表优化之虚拟列表实现

    应用场景 :后台一次性发送上千条或更多数据给前台 场景模拟:用户发起一个请求,后台发送了10w条数据 使用虚拟列表之前 :前台需要生成10w个dom节点用来渲染页面 使用虚拟列表之后 :前台只需要生成少量dom节点(dom节点数量取决于前端视图需要展示的数量),就可以实现对这10w条

    2023年04月22日
    浏览(31)
  • vue组件:列表自动无限循环

     前述:用过vue-seamless-scroll插件,手动滚动列表到底部出现了空白现象,某些表现不符合项目场景,故自己写了一个自己用的组件,如果有人需要可以直接拿去用,如有不足请指教勿喷! 主要功能: 列表自动无限循环滚动 鼠标移入停止滚动,移出继续滚动 待滚动内容高度未

    2024年02月07日
    浏览(41)
  • vue-virtual-scroller的使用,展示巨量数据,长列表优化,虚拟列表

    计算显示区域的高度(或宽度) 和显示区域的起始位置(scrollTop或scrollLeft) 根据每个元素的尺寸和总数目,计算出整个列表的高度(或宽度) 显示区域的高度(或宽度)和每个元素的尺寸,计算出一页能够显示的元素的数量(即动态计算了可视区域可以显示多少个元素)

    2024年02月14日
    浏览(43)
  • 通用vue组件化展示列表数据

    1.首先先确定要展示的表格列名以及拿到所需要展示的数组数据 2.然后建立一个专门放el-table遍历的文件 3.在父组件中将数据列表数据存放在listData里面,然后传给子组件,子组件定义一个动态的列,通过遍历propList得到列名,然后也动态匹配prop,这样prop的值会去和listData进行匹

    2023年04月08日
    浏览(36)
  • vue-virtual-scroll-list虚拟列表

    当DOM中渲染的列表数据过多时,页面会非常卡顿,非常占用浏览器内存。可以使用虚拟列表来解决这个问题,即使有成百上千条数据,页面DOM元素始终控制在指定数量。 https://www.npmjs.com/package/vue-virtual-scroll-list 参数 描述 data-sources 数据列表[数组] data-key 列表 key 值 data-compon

    2024年03月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包