首页 > 其他分享 >vue项目使用vue-virtual-scroll-list虚拟滚动超多千万条数据 cv可用案例

vue项目使用vue-virtual-scroll-list虚拟滚动超多千万条数据 cv可用案例

时间:2023-07-24 14:06:04浏览次数:39  
标签:vue 滚动 千万条 list virtual 列表 超多 scroll

当我们有大量数据需要显示在列表中时,传统的滚动列表会将所有数据渲染到 DOM 中,导致性能下降和内存占用增加。虚拟滚动列表通过仅渲染当前视窗内可见的一小部分数据,动态地根据滚动位置更新列表内容,从而实现更高效的列表渲染。

vue-virtual-scroll-list 是一个用于 Vue.js 的虚拟滚动列表组件。它提供了一种优化大量数据列表的方式,通过仅渲染当前可见区域的部分数据来节省性能和内存资源。

使用 vue-virtual-scroll-list 可以显著提高大型列表的渲染性能,特别是在移动端或数据量较大的情况下,能够更流畅地滚动和浏览列表内容。

vue项目使用vue-virtual-scroll-list虚拟滚动超多千万条数据 cv可用案例_移动端

npm i vue-virtual-scroll-list

父组件

<template>
  <div>
    <virtual-list style="height: 480px; overflow-y: auto;"
      :data-key="'uid'"  //必填
      :data-sources="items"  //必填
      :data-component="itemComponent"  //必填
    />
  </div>
</template>

<script>
  import Item from './Item'
  import VirtualList from 'vue-virtual-scroll-list'
  export default {
    name: 'root',
    data () {
      return {
        itemComponent: Item,
        items: []
      }
    },
    components: { 'virtual-list': VirtualList },
    created () {
      // 生成100000个数据
    for (let i = 1; i <= 100000; i++) {
      this.items.push({
        uid: 'unique_'+i,
        text: `Item ${i}`
      })
    }
    },
  }
</script>

子组件

<template>
  <div>{{ index }} - {{ source.text }}</div>
</template>

<script>
  export default {
    name: 'item-component',
    props: {
      index: { // index of current item
        type: Number
      },
      source: { // here is: {uid: 'unique_1', text: 'abc'}
        type: Object,
        default () {
          return {}
        }
      }
    }
  }
</script>

标签:vue,滚动,千万条,list,virtual,列表,超多,scroll
From: https://blog.51cto.com/u_16180801/6834447

相关文章

  • vue3.0 外部配置文件一 (导入json文件方式)
    vue3.0外部配置文件,重点是打包后也可以修改配置参数 注:js文件中必须是标准的json格式一、在public中创建static文件夹,在static文件夹中创建config.json  文件 config.json (必须是标准的json格式){"webSocketUrl":"ws://192.168.1.120:5011/chat/","......
  • vue 父向子通过props 传递一个function报未定义
    解决方法:参考资料:https://cloud.tencent.com/developer/ask/sof/523570来自为知笔记(Wiz)......
  • vue中ref的用法
    1,可以引用元素,通过this.$refs.domxx直接操作元素。<divref="domxx"></div>methods:{getxx(){console.log(this.$refs.domxx)//访问DOM元素}}2,可以绑定组件实例,访问组件的属性和方法;参考地址:(22条消息)Vue中ref的用法_我心向阳.的博客-CSDN博客Templ......
  • 一个nginx + vue下二级路径版本化方案
    过程说明:1、arg_appver表示读取url上appver参数2、对appver参数做变量映射得到alias_party1_test路径。具体条件:没有指定参数的话(即"")指向2.8.0版本化文件夹;默认的话(即default)则指向动态拼接的路径3、第2点里面动态拼接如果不需要版本化则先固定一个路径,如果需要则使用$arg_ap......
  • 图解 Vue 响应式原理
    Vue初始化模板渲染组件渲染为了便于理解,本文将从以下两个方面进行探索:从Vue初始化,到首次渲染生成DOM的流程。从Vue数据修改,到页面更新DOM的流程。Vue初始化先从最简单的一段Vue代码开始:"""<template><div> {{message}}</div></template><......
  • vue--dat41--scoped作用域
    1.scoped样式作用:让样式在局部生效防止冲突写法 <stylescoped>    </style> npmviewwebpackversions. 查看webpack的版本npmviewless-loaderversions查看less-loader版本npmiless-loader  安装less-loader......
  • vue--day40--plugins插件
    1.main.js/***该文件是整个项目的入口文件*///引入VueimportVuefrom'vue'//引入App组件他是所有组件的父组件importAppfrom'./App.vue'//引入插件importpluginsfrom'./plugins'//关闭vue的生产提示Vue.config.productionTip=false//应用插件Vue.us......
  • vue--day39--mixin混合
    组件就是在复用代码,如果组件里面有许多配置是相同的可以借助混合去复用  1.minxin.js//组件就是在复用代码,如果组件里面有许多配置是相同的可以借助混合去复用exportconsthunhe={methods:{showName(){alert(this.name);}},//混合中的生命钩子函数和组件中的钩子......
  • vue 学习第1天
    vue的特点:1.采用组件化模式,提高代码复用率,且让代码更好维护,一个模块可以封装组件2.声明式编码,提高开发效率,心有林夕,标签+for循环,而不是一步步去写3.虚拟dom,相当于后端的缓存 脚手架的文件的格式1:vue-cli脚手架初始化项目2:node+webpack+淘宝镜像node_modules......
  • 【技术积累】Vue中的核心知识【三】
    this关键字在Vue中,this关键字是指向当前组件实例的引用。它可以在组件的各个方法和生命周期钩子函数中使用。在组件的方法中,this指向当前组件实例,可以通过this访问组件的属性和方法。例如,可以通过this.message访问组件的data中的message属性。在生命周期钩子函数中,this同样......