на определенную папку. компонент представляет из себя таблицу из 3 колонок и примерно от 1000 до 2500 рядов. ячейки представляют из себя textarea с данными которые можно редактировать. И проблема в том что при нажатии таблица появляется с довольно сильной задержкой, секунды 3. В чем может быть проблема ? ререндера там нету. А для виртуализации или инфинити скрола вроде не так много данных
2,5к записей это мало данных?
может у него мак про на m2
Да хоть на м5
Девтулзы в помощь там все показано по времени какая операция занимает больше всего времени
1000 это очень мало. 0.01с навскидку. Где-то ререндеринг или архитектурно что-то не то. Есть код?
Откуда такая инфа? На большинстве таблиц 200+ строк - это уже виртуализация нужна как минимум, чтобы интерфейс плавно работал для юзера
Браузер на средней машине клонирует элементы со скоростью около 10 млн элементов в секунду.
Сколько таблиц без виртуализации и без пагинации на 1000+ строк у тебя написано на реакте? )
Я не использую реакт для таблиц 1000+, изЗа его пенальти. Солид жиэс, свелт или ванила позволяют до 5000 строк со всей скоростью. Но у человека речь шла даже не о плавности. У него 3 сек тормоза на таблицах в 1-2 к рядов. Нормальное пенальти реакта 2-4 раза от нативной реализации. Все что свыше - что то не то с архитектурой.
Не понимаю смысла таких рассуждений, когда они ломаются бональным примером в сандбоксе https://codesandbox.io/s/basic-usage-antd-5-9-4-forked-phcn5g?file=/demo.tsx Хочешь сделать анимашку в одном рендере с рендером таблицы на 1000 строк и получаешь дерганую фигню, даже без замеров в профайлере. Можно один раз навесить виртуализацию и забыть про проблемы со скоростью рендера, в подавляющем большинстве кейсов этого за глаза хватает и нет смысла упарываться в какие-то оптимизации с мемоизациями.
Самое смешное, что там в таблице можно просто включить пагинацию ))
Вот как раз великолепный пример того, о чем я и говорил - если изменения стейта, не связанное с таблицей, вызывает полный ее ререндеринг - значит что-то не то с архитектурой. Накладываясь на неторопливость antd (при всей моей любви к нему, скоростью он не блещет) это и приводит к жутким лагам. Рендеринг с antd на стареньком ноуте - 1600 мс, чисто реактом - 400 мс, ванилой (без css) - 200 мс. Причем, в случаес ванилой, 90% рендеринга забирает рендеринг браузера а не код. Виртуализация для длинных списков это действительно хорошая практика. Но начинать нужно с тщательного продумывания архитектуры. Это вообще базовая вещь и краеугольный камень любой оптимизации.
Обсуждают сегодня