django element组件样式没有渲染_解析 Antd Table 组件的错位和性能问题

本文主要探讨了Antd和Element Table组件在使用固定列时遇到的列错位问题及性能影响。文章通过分析两者的实现原理,提出了解决Antd中Rc-table同步高度的bug的方法,并对比了两者在性能上的差异,建议优化Table组件设计以提高性能。
摘要由CSDN通过智能技术生成

零. 开门见山的 Bug 解决方案

在做活动引擎的过程中,发现 Antd 的 Table 组件会发送各种行错位,和列错位。关于行错位不是本节内容介绍的重点,本文主要介绍在启用固定列的时候(即使用fixed) 时发生的列错位 bug 以及其衍生的一系列性能问题。

该写固定的 width,height 就写固定 width,height 。(修复简单,但这样 table 就不灵活,没法针对动态变化高度) 针对简单场景,可以用 setTimeout 在 mounted 之后触发下文的 syncFixedTableRowHeight。(缺点就是不稳定,可能还需要配套写检查资源加载的监听函数,但减少了出bug的概率) 使用 ResizerObserver 监听高度或宽度等属性变化,同步变化信息,方法见下文。(无缺点)

一. 复现 Bug

下图是使用固定列和 Image 作为列内容时产生的现象,该案例非常容易复现。

代码

import { Table } from 'antd';

const columns = [

{

title: 'Full Name',

width: 100,

dataIndex: 'name',

key: 'name',

fixed: 'left',

},

{

title: 'Age',

width: 100,

dataIndex: 'age',

key: 'age',

fixed: 'left',

},

{ title: 'Column 1', dataIndex: 'address', key: '1' },

{ title: 'Column 2', dataIndex: 'address', key: '2' },

{ title: 'Column 3', dataIndex: 'address', key: '3' },

{ title: 'Column 4', dataIndex: 'address', key: '4' },

{ title: 'Column 5', dataIndex: 'address', key: '5' },

{

title: 'Avatar',

width: 200,

dataIndex: 'img',

key: 'img',

render: (a, row ,b) => (

<img src={ row.img}>img>

)

},

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值