我需要一个关于无限滚动分页的快速提示。我有两个引导列,它们将使用ul元素创建从数据库加载的滚动列表。我想实现一个带有无限滚动的延迟加载,以避免electron vue应用程序出现性能问题。我在一个vue方法中编写了这个伪代码,但我不确定如何分割我拥有的两个数组,并使用v-if
循环
paginateDatasets( col ) {
//
if( !this.store.supplierFound || !this.store.clientFound ){
switch( col ) {
case 'suppliers':
//console.dir( this.$refs.listedSupplier )
//scroll top per 50 referenze = 3651.199951171875 px
//console.dir( this.$refs.listColSuppliers.scrollTop )
//console.dir( this.$refs.listColSuppliers.scrollHeight )
let diff = this.$refs.listColSuppliers.scrollHeight - Number(this.$refs.listColSuppliers.scrollTop)
//
let clientHeight = this.$refs.listColSuppliers.clientHeight
console.log( Number(diff) )
if( Number( diff ) === 555 ){
//this.
console.log('Last index')
console.dir( this.$refs.listedSupplier.dataset.index )
console.log('Loading more results')
}
break;
case 'clients':
console.dir( this.$refs.listedClient )
break;
}
}
}
一个数组将容纳近2000个对象,第二个将容纳58000个对象。我的想法是检查滚动条何时到达具有74vh的固定高度的列的末尾,而应用程序的整个容器,独立于应用程序窗口大小将具有100vh的固定高度。任何提示或帮助将不胜感激。谢谢大家。
1条答案
按热度按时间mwkjh3gx1#
可以参考以下代码:
此代码实现了一个虚拟列表组件,该组件具有以下功能和实现原理:
1.产品特点:
1.实施原则:
ref
属性引用它。. infinite-list-phantom
:占位符元素,高度等于整个列表,确保容器的正确滚动范围。. infinite-list
:包含可见的数据项,滚动效果是通过应用CSStransform
属性和使用getTransform
计算的偏移量来实现的。mounted
钩子中,获取容器元素的可见高度,初始化开始索引(start)和结束索引(end)。通过上述实现,该代码可以通过仅渲染当前可见的项来高效地渲染大量数据,从而实现高性能的虚拟滚动列表效果。