关于 vue 无缝滚动组件性能问题的探讨

发布于 2022-09-12 04:21:50 字数 1754 浏览 17 评论 0

组件地址: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 取得平均值)

数据条数平均用时
100040ms
10000180ms
50000900mstips:此时界面会白屏三四秒 再显示组件
100000直接加载不出来了....

请问各位大佬 还有什么极致的性能体验吗 还是要从产品身上砍需求~~

结合各位的问题我简单说下此功能的场景(可以反驳需求的合理性)
这个是使用在大屏看板项目上的, 主要找不到这个组件是否支持分页渲染....大概是没有吧 或者这个组件本身就不考虑为大量数据做渲染?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

芯好空 2022-09-19 04:21:50

好奇问一下, 这里的数据条数指的是每次加载的条数, 还是目前存在的数据总数

零崎曲识 2022-09-19 04:21:50

下拉加载,每一页10条,应该不会有什么性能的问题吧

我喜欢麦丽素 2022-09-19 04:21:50

为什么要一次性加载这么多数据

姐不稀罕 2022-09-19 04:21:50

你可能需要一款支持 virtualScroll 的滚动组件,VirtualScroll 原理是只渲染可视范围内的 DOM。

顺手搜索了一下,https://akryum.github.io/vue-virtual-scroller 10万条数据可能还是要测试一下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文