传播星球
传播星球
  • 发布:2024-09-19 18:17
  • 更新:2024-09-20 11:04
  • 阅读:131

在一个数据量很大的列表中,数据渲染慢,怎么解决啊

分类:uni-app

有一个列表页,数据量特别大,几千条甚至上万条,这时候想改变列表中的样式渲染的特别慢,怎么解决啊

2024-09-19 18:17 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

用原生的复选框 测试也没问题 反应很快的

<checkbox-group>  
            <label v-for="item in 10000" style="display: block;">  
                <checkbox :value="item+''" :key="item" />-----{{item}}  
            </label>  
        </checkbox-group>

我自己用图片模拟一个复选框 放上去 没出现卡顿或者反应慢的问题 你可以参考下

<template>  
    <view>  
        <view v-for="item in 10000" @tap="setCheckbox(item)" style="display: flex;padding: 14rpx 32rpx;">  
            <view class="checkbox" :class="checked.findIndex(items => items == item) !== -1 ? 'checked' : ''">  
            </view>  
            <view>  
                -----{{item}}  
            </view>  
        </view>  
    </view>  
</template>  

<script setup>  
    import {  
        ref  
    } from 'vue'  
    const checked = ref([])  
    const setCheckbox = (item) => {  
        let checkedIndex = checked.value.findIndex(items => items == item)  
        if(checkedIndex == -1) {  
            checked.value.push(item)  
        } else {  
            checked.value.splice(checkedIndex,1)  
        }  
    }  
</script>  

<style>  
    .checkbox {  
        height: 50rpx;  
        width: 50rpx;  
        margin-right: 24rpx;  
        background-image: url('/static/logo.png');  
        background-repeat: no-repeat;  
        background-size: 100%;  
    }  
    .checked {  
        background-image: url('/static/checked.png');  
    }  
</style>
  • 传播星球 (作者)

    好的我试试

    2024-09-20 11:09

  • 传播星球 (作者)

    你好,我写一个demo,模拟我遇到的情况,跟你写的还是有点不同的,可以浮现渲染慢的问题

    2024-09-21 11:11

爱豆豆

爱豆豆 - 办法总比困难多

插件市场中不是有很多 "虚拟列表" 的插件吗 你可以试试这些插件

  • 传播星球 (作者)

    用了,但是如果改变列表中的按钮的样式,渲染的也很慢

    2024-09-20 08:31

  • 爱豆豆

    回复 传播星球: 那个端?列表中有图片吗?还是纯文字?

    2024-09-20 09:35

  • 传播星球 (作者)

    回复 爱豆豆: 我上传了一个附件,里面有操作的视频,您看一下,安卓端的

    2024-09-20 09:40

  • 爱豆豆

    回复 传播星球: 你这个复选框是 用的其他组件吗?还是自定义的?

    2024-09-20 10:56

  • 传播星球 (作者)

    回复 爱豆豆: 用的官方的checkbox-group组件

    2024-09-20 11:03

  • 爱豆豆

    回复 传播星球: 你看我发的 示例

    2024-09-20 11:04

  • 爱豆豆

    感觉是你这个索引列表的问题 是用的插件吗?

    2024-09-20 11:06

  • 传播星球 (作者)

    回复 爱豆豆: 是的uview的插件

    2024-09-20 11:09

要回复问题请先登录注册