长列表处理

长列表处理

vue虚拟滚动(vue-virtual-scroll-list)

vue2中可用,vue3中报错:Vue.component is not a function

安装
npm install vue-virtual-scroll-list --save
  • 当前node版本12.12.0
  • vue-virtual-scroll-list@2.3.3
使用
  • 使用虚拟滚动组件

    <template>
    	<div>
    		<h1>审批</h1>
    		<h1>实现长列表</h1>
        <!-- 4, 使用列表组件-->
    		<virtual-list
    			style="height: 360px; overflow-y: auto; width: 100px"
    			:data-key="'uid'"
    			:data-sources="items"
    			:data-component="itemComponent"
    		/>
    	</div>
    </template>
    
    <script>
    // 1,导入组件
    	import Item from "./Item";
    	import VirtualList from "vue-virtual-scroll-list";
    
    	export default {
    		name: "root",
    		data() {
    			return {
            // 2,注册子组件,配置列表内容
            itemComponent: Item,
    				items: [
    					{ uid: "unique_1", text: "abc" },
    					{ uid: "unique_2", text: "xyz" },
    				],
    			};
        },
        // 3,注册列表组件
        components: { "virtual-list": VirtualList },
        // 5,添加测试数据
    		mounted() {
    			for (let i = 3; i < 1000; i++) {
    				this.items.push({ uid: "unique_" + i, text: "text" + i });
    			}
    		},
    	};
    </script>
    
    <style lang="stylus" scoped></style>
    
    
  • Item.vue

    <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>
    
    

原理

方法1: 数据分片
方法2:只渲染可视区域内的内容
可以通过按需进行加载dom,即只渲染可视区域内及其前后部分的数据(根据当前滚动的高度和列表的长度),减少dom的结构数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值