我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue3无限滚动组件怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue3无限滚动组件怎么用

这篇“vue3无限滚动组件怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3无限滚动组件怎么用”文章吧。

什么是无限滚动组件

当我们的列表页有几百万条数据的时候应该怎么办呢?分页也许不是最好的体验方式,无限滚动就是解决这种场景更好的技术手段。当用户向下滚动内容时,会自动添加下一页的list组件,加载更多内容。用户无需等待页面预加载,而且对于前端渲染来说不会反复渲染大量组件提高了页面渲染性能。所以无限滚动可以为用户提供更好的体验。

vue3无限滚动组件怎么用

无限滚动是电商网站、CMS后台等应用程序中非常常见的一种模式。在线零售商喜欢这种加载产品的模式,因为它允许用户无缝浏览一个类别中可用的每个产品,而不必经常暂停并等待下一页加载。【推荐:vue视频教程】

关于vue3-infinite-list

官网: https://github.com/tnfe/vue3-infinite-list

vue3-infinite-list是一个针对vue3的短小精悍的无限滚动组件,它体积非常小、零依赖gzip只有 3kb。虽然vue相关的无限滚动开源组件也有很多,但是对比同类产品vue3-infinite-list依然有不少自己的特点,并且它完全使用vue3 setup api + typescript编写,项目LOGO是一只千足毛毛虫? 。

vue3无限滚动组件怎么用

特性

  • 体积小 & 零依赖 – gzipped 后只有 3kb

  • 支持百万级列表渲染, 不费吹灰之力

  • 支持滚动到指定条目指定初始滚动偏移量

  • 支持固定可变 宽/高的各类列表

  • 支持垂直 or 水平 不同布局的列表

  • For Vue3 typescript编写

  • 使用简单可以结合各类UI库使用

vue3无限滚动组件怎么用

如何使用

vue3无限滚动组件怎么用

使用 npm:
npm install vue3-infinite-list --save
使用 yarn:
yarn add vue3-infinite-list

引用

import InfiniteList from 'vue3-infinite-list';
  <InfiniteList    :data="data"    :width="'100%'"    :height="500"    :itemSize="50"    :debug="debug"    v-slot="{ item, index }"   >    <div class="li-con">{{ index + 1 }} : {{ item }}</div>  </InfiniteList>

使用示例

1.基本用法: item固定高度类型, 垂直滚动(默认) demo

vue3无限滚动组件怎么用

使用非常简单,内部可以结合element-plus或者antd-vue、tdesign等UI库。

<InfiniteList   :data="data"   :width="'100%'"   :height="500"   :itemSize="50"   :debug="debug"   v-slot="{ item, index }">  <div class="li-con">{{ index + 1 }} : {{ item }}</div></InfiniteList>

2.设置滚动方向为水平方向 demo

  <InfiniteList :data="data" :width="900" :height="220" :itemSize="115" scrollDirection="horizontal" :debug="debug" v-slot="{ item, index }"  > <div class="li-con li-con-r">   item{{ index }} <br />   xxxxxxx <br />   xxxxxxx <br />   <el-button type="primary" round>Primary</el-button> </div>  </InfiniteList>

这里scrollDirection="horizontal"可以设置滚动方向为水平。

3.动态控制滚动高度(每一项item高度值是变化的) demo

vue3无限滚动组件怎么用

  <InfiniteList    :data="data"    :width="'100%'"    :height="520"    :itemSize="getItemSize"    :debug="debug"    v-slot="{ item, index }"  >    <div class="li-con">item {{ index }} : {{ item }}</div>  </InfiniteList>
// 通过这个函数可以动态设置元素宽高.const getItemSize = (i: number): number => {      switch (i % 4) {        case 1:          return 80;        case 2:          return 50;        case 3:          return 100;        default:          return 200;      }  };

这里 getItemSize 是一个有如下语法的函数 : (i: number): number, 通过这个函数可以动态设置元素宽高。

4.滚动到指定元素位置 demo

  <InfiniteList :data="data" :width="'100%'" :height="500" :itemSize="getItemSize" :scrollToIndex="scrollToIndex" :debug="debug" v-slot="{ item, index }"  > <div class="li-con" :class="getClass(index)">item{{ index + 1 }} : {{ item }}</div>  </InfiniteList>

你也可以使用 scrollToIndex 来滚动到指定元素。

5.滚动到指定元素 (更精细的对齐方式) demo

 <InfiniteList   :data="data"   :width="'100%'"   :height="500"   :itemSize="getItemSize"   :scrollToIndex="scrollToIndex"   :scrollToAlignment="scrollToAlignment"   :debug="debug"   v-slot="{ item, index }" >   <div      class="li-con"      :class="getClass(index)"    >      item{{ index + 1 }} : {{ item }}   </div> </InfiniteList>

你可以使用 scrollToIndexscrollToAlignment 属性来指定滚动元素如何与滚动区域对齐, 由四个选项: auto, start, center, end,分别对应自动对齐、位于容器起始,位于容器中间,位于容器末尾。

6.滚动到指定位置,单位是像素 demo

  <InfiniteList    :data="data"    :width="'100%'"    :height="500"    :itemSize="90"    :scrollOffset="scrollOffset"    :debug="debug"    v-slot="{ item, index }"  >    <el-row class="mb-4 li-con">      <el-col :span="8">index: {{ index + 1 }} </el-col>      <el-col :span="8">xxxxxxxxxx</el-col>      <el-col :span="8">        <el-button type="primary">Primary</el-button>         <el-button type="success">Success</el-button></el-col      >    </el-row>  </InfiniteList>

你也可以使用 scrollOffset 来滚动到指定位置。

7.支持动态变更数据 demo

  <InfiniteList  :data="data"  :width="'100%'"  :height="500"  :itemSize="60"  :debug="debug"  v-slot="{ item, index }"  > <el-row class="li-con">   <el-col :span="6">item{{ index + 1 }}</el-col>   <el-col :span="6">2022-05-01</el-col>   <el-col :span="6">Name: Tom</el-col>   <el-col :span="6">     <el-button type="primary">Button</el-button>     <el-button type="success">Button</el-button>   </el-col> </el-row>  </InfiniteList>

只需要动态的改变绑定的 data.

8.设置额外渲染元素的数量 demo

<InfiniteList   :overscanCount="2"   :data="data"   :width="'100%'"   :height="500"   :itemSize="50"   :debug="debug"   v-slot="{ item, index }">  <div class="li-con">{{ index + 1 }} : {{ item }}</div></InfiniteList>
在可见的item上/下再各多渲染额外的overscanCount个item。调整它可以帮助减少某些浏览器/设备上的滚动闪烁。

vue3无限滚动组件怎么用

组件的属性和配置

属性类型是否必须?描述
widthNumber or String*列表宽度. 在滚动方向是 'horizontal'是用于确定滚动元素个数.
heightNumber or String*列表宽度. 在滚动方向是 'vertical'是用于确定滚动元素个数.
dataany[]构建滚动元素的数据
itemSize(index: number): number
可以是一个固定的宽/高(取决于滚动方向), 一个包含列表所有元素的数组, 或者是返回指定位置元素高度的函数: (index: number): number
scrollDirectionString
指定滚动方向 'vertical' (默认) 或 'horizontal'.
scrollOffsetNumber
可以指定滚动位置
scrollToIndexNumber
可以指定到滚动到哪个元素
scrollToAlignmentString
结合 scrollToIndex一起用, 用于控制滚动到的元素的对齐方式. 可选: 'start', 'center', 'end' or 'auto'. 使用 'start' 将对齐到容器的起始位置, 'end' 则对齐到元素的结尾. 使用 'center可以对齐到容器正中间. 'auto' 则是滚动到scrollToIndex指定元素恰好完全可见的位置
overscanCountNumber
在可见元素上/下额外渲染的元素数量. 这可以减少在特定浏览器/设备上的闪烁
width 在 scrollDirection'vertical'时只能是string类型。类似的, Height 在 scrollDirection'horizontal'时也只能是string类型*

以上就是关于“vue3无限滚动组件怎么用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue3无限滚动组件怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue3无限滚动组件怎么用

这篇“vue3无限滚动组件怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3无限滚动组件怎么用”文章吧。什么是无限
2023-06-29

vue-seamless-scroll无缝滚动组件怎么使用

今天小编给大家分享一下vue-seamless-scroll无缝滚动组件怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧
2023-06-29

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

在移动端数据的更新中许多方法孕育而生,无限滚轮也是解决的方案一种,Element-ui为vue开发了一个事件(v-infinite-scroll),下面这篇文章主要给大家介绍了关于Element UI中v-infinite-scroll无限滚动组件使用的相关资料,需要的朋友可以参考下
2023-02-08

简单方法实现Vue 无限滚动组件示例

这篇文章主要为大家介绍了简单方法实现Vue 无限滚动组件示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

Flutter Sliver滚动组件怎么用

这篇文章主要介绍了Flutter Sliver滚动组件怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flutter Sliver滚动组件 SliverList & Sl
2023-06-25

Selenium怎么实现页面虚拟滚动和无限滚动

使用Selenium实现页面虚拟滚动:虚拟滚动是指页面上的元素随着用户的滚动动态加载。在Selenium中实现页面虚拟滚动可以通过以下步骤:使用Selenium打开目标网页利用Selenium的滚动方法(如execute_script)
Selenium怎么实现页面虚拟滚动和无限滚动
2024-05-14

vue3动态组件怎么使用

这篇文章主要介绍“vue3动态组件怎么使用”,在日常操作中,相信很多人在vue3动态组件怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue3动态组件怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来
2023-07-06

vue怎么实现无限消息无缝滚动

本篇内容主要讲解“vue怎么实现无限消息无缝滚动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现无限消息无缝滚动”吧!一、html
2023-06-29

Vue怎么优化无限滚动列表

这篇文章主要介绍“Vue怎么优化无限滚动列表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么优化无限滚动列表”文章能帮助大家解决问题。问题大家都知道,Web 页面修改 DOM 是开销较大的操
2023-07-04

vue支持百万量级的无限滚动组件详解

这篇文章主要为大家介绍了vue支持百万量级的无限滚动组件详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-16

Vue3 Element-plus和el-menu无限级菜单组件怎么封装

对于element中提供给我们的el-menu组件最多可以实现三层嵌套,如果多一层数据只能自己通过变量去加一层,如果加了两层、三层这种往往是行不通的,所以只能进行封装效果图一、定义数据MenuData.tsexportdefault[{id:"1",name:"第一级菜单",level:&#39;1&#39;,child:[{id:"11",name:"第二级菜单",level:&#39;1-
2023-05-14

CSS3怎么实现无限循环的无缝滚动效果

这篇文章主要讲解了“CSS3怎么实现无限循环的无缝滚动效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS3怎么实现无限循环的无缝滚动效果”吧!1. 使用CSS3来实现若要用CSS3的属
2023-07-05

vue3动态加载组件及动态引入组件怎么使用

本篇内容介绍了“vue3动态加载组件及动态引入组件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.问题在做一个用vite构建的vu
2023-07-05

Unity 中怎么利用ScrollRect实现一个无限滚动条

本篇文章为大家展示了Unity 中怎么利用ScrollRect实现一个无限滚动条,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一 .总体流程建一个循环滑动脚本 InfinityGridLayoutG
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录