组件地址:https://github.com/chenxuan0000/vue-seamless-scroll
将近 1k 的 star 应该不错~~
但是最近使用项目的时候碰到 客户电脑上 性能表现比较差,自己模拟了下场景
<template>
<vue-seamless-scroll :data="listData" class="seamless-warp">
<ul class="item">
<li v-for="item in listData">
<span class="title" v-text="item.title"></span><span class="date" v-text="item.date"></span>
</li>
</ul>
</vue-seamless-scroll>
</template>
<style lang="scss" scoped>
.seamless-warp {
height: 229px;
overflow: hidden;
}
</style>
<script>
export default {
data () {
return {
listData:[]
}
}
mounted(){
const length=9999//数据条数
let data = []
console.time()
for(let i=0;i<length;i++){
data.push({title:i,date:new Date().getTime()})
}
this.listData = Object.freeze(data)//听说这个方法可以提高性能 亲测可以提高 60%左右
this.$nextTick(()=>{
console.timeEnd();
})
}
}
</script>
//简单测试下了 结果如下(每个数据条数测试10ci 取得平均值)
数据条数 | 平均用时 |
---|
1000 | 40ms |
10000 | 180ms |
50000 | 900ms | tips:此时界面会白屏三四秒 再显示组件 |
100000 | 直接加载不出来了.... |
请问各位大佬 还有什么极致的性能体验吗 还是要从产品身上砍需求~~
结合各位的问题我简单说下此功能的场景(可以反驳需求的合理性)
这个是使用在大屏看板项目上的, 主要找不到这个组件是否支持分页渲染....大概是没有吧 或者这个组件本身就不考虑为大量数据做渲染?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…