alibaba / formily

📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3
https://formilyjs.org/
MIT License
11.32k stars 1.48k forks source link

[Bug Report] formily/element ArrayTable 稍微渲染一点数据量就卡 #3816

Open liam61 opened 1 year ago

liam61 commented 1 year ago

Reproduction link

Edit on CodeSandbox

Steps to reproduce

from Link

渲染 50行 * 50列的数据,时间长达 10s 量级,渲染一样的数据 formily/antd 秒加载,而且没有样式错位

渲染过程:

  1. table header 样式异常

  2. table 长时间白屏

  3. table cell 样式不对

  4. table 样式正常

  5. table 可滚动,可交互

Performance

image

What is expected?

  1. 减少计算时长
  2. UI 渲染正常

What is actually happening?

看了下代码,不清楚是 formily 还是 element 的问题,我感觉可能出在响应式绑定上

Package

@formily/element@2.2.20


janryWang commented 1 year ago

试试react的array table,卡不卡

liam61 commented 1 year ago

react antd arraytable 试过了,不卡的,渲染同等数据量,没有出现样式错误

渲染过程:

  1. 渲染 table header 正常
  2. 每列 和 table cell 直接渲染好
  3. table 可滚动,可交互

我不知道是不是 react 分片机制的影响,performance 中及时计算量最大的时候,fps 也是正常的

image

janryWang commented 1 year ago

可以考虑再深入深入排查一下,提个 PR 解决这个问题,因为 vue 生态都社区共建的,能提一个 PR 把这个问题解决,那对社区的帮助也是非常大的😀

liam61 commented 1 year ago

好的,我看看吧,没怎么写过 vue😂