Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于使用antd的Table组件以及ant-virtual-table组件的几点建议 #9

Open
ctq123 opened this issue Jul 13, 2019 · 2 comments

Comments

@ctq123
Copy link
Owner

ctq123 commented Jul 13, 2019

现状:
目前antd.Table本身不支持大数据虚拟渲染但支持很多复杂结构(短期内不会解决虚拟渲染),ant-virtual-table支持大数据虚拟渲染但不支持表单复杂结构

问题:
业务实际当中table往往需要很多复杂表结构,同时也会有大数据渲染卡顿,页面僵死,甚至崩溃的情况

解决方案:
其实问题往往有很多的解决方案,从问题本身上发现问题,你需要做的只是先一步一步地分析各种场景,解剖场景使问题清晰明了,然后思考每一种场景可能出现的问题以及其解决途经。

比如业务显示40条数据的场景下,通常是使用表复杂结构进行各种操作;但导出数据分析场景下,他是不会对表单进行过普通操作,他只会导出数据。
这时,你可以考虑显示40条数据时使用antd.Table组件,在显示1000条以上的数据时,使用ant-virtual-table来解决渲染卡顿问题,这时不支持表单的各种操作。

@ctq123
Copy link
Owner Author

ctq123 commented Jul 13, 2019

antd.Table是一个复杂的组件,要对普通的表单结构进行虚拟渲染也许不会很难,但要对所有复杂结构,所有场景,进行虚拟渲染就很难了。

对复杂结构进行渲染,其实也有解决方案,比如利用ResizeObserver,IntersectionObserver等新API解决,但又会出现新的问题,那就是兼容性问题,以及为解决兼容性而产生新的性能问题。

作为公用组件,除了兼容性要考虑的问题外,还需要考虑代码复杂度及维护成本等综合问题,我想这也是目前阿里工程师短期内不会考虑Table虚拟渲染的原因之一吧。

当然作为你自己业务的组件,你可以随便搞,未必需要有那么多的顾虑,但作为公用组件就不能这样了

@ctq123
Copy link
Owner Author

ctq123 commented Dec 11, 2019

@jsonshao ant-virtual-table@0.1.7+版本中已解决

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant