Element + vue 用分页优化dom渲染时长

场景:请求接口一次返回几百上千条数据,导致渲染dom时间太长,甚至浏览器卡死

这里前端用分页解决单次渲染dom节点过多的问题:

框架:Element + vue

//页面
//列表省略
<el-pagination
    @size-change="changePageSize"
    @current-change="changePageIndex"
    :current-page="page.currentPage"
    :page-sizes="[10, 20, 30, 40 , 50]"
    :page-size="page.pageSize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="page.total"
></el-pagination>
//JS
export default {
    props: ["longList"]
    data(){
        return {
            lists: [],
            page: {
                pageSize: 10,//一页展示10条
                total: 0,//总数
                currentPage: 1//当前页
            },
        }
    },
    created() {
        this.setList()
    }
    methods: {
        changePageSize(val) {
            console.log(`每页 ${val} 条`);
            this.page.pageSize = val;
            this.setList();
        },
        changePageIndex(val) {
            console.log(`当前页: ${val}`);
            this.page.currentPage = val;
            this.setList();
        },
        //设置展示的列表数据
        setList() {
            this.lists = this.longList.slice((this.page.currentPage - 1) * this.page.pageSize, this.page.pageSize * this.page.currentPage)
            this.page.total = this.longList.length
        }
    }

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值