React & Taipu
Заметила, что постоянные повторные вычисления сильно тормозят работу. Давай проанализируем цикл рендеринга и посмотрим, где можно сократить лишние шаги.
Конечно, давай начнём с логики обновления компонентов, определим чистые компоненты, а потом используем React.memo или useMemo, чтобы избежать лишних пересчётов. И ещё, подумай о том, чтобы вынести сложные вычисления из фазы отрисовки в useEffect или в воркер, если там асинхронные операции.
Звучит отлично. Следи, чтобы крюки в мемо были надёжными, и выгрузи тяжёлую работу из рендера. Используй воркеров для асинхронных задач. Постараемся уменьшить накладные расходы.
Точно. Пусть на брифингах будем говорить только о стабильных компонентах, а всю сложную работу переложим на помощников или фоновые процессы. Это значительно сократит время рендеринга.
Это точно верный путь. Сосредоточься на стабильных элементах, а тяжелую работу вынеси из рендера. Готово.
Отлично, дай знать, если понадобится что-нибудь ещё подправить.
Проверь панель с графиками, там преобразование данных все еще внутри рендера. Закешируй набор данных и перенеси вычисления на воркер. И посмотри фильтры в сайдбаре – они каждый раз пересоздают функции; `useCallback` с правильными зависимостями значительно уменьшит количество ненужных перерисовок. Готово.
Понял — закеширую данные графика, перенесу вычисления в воркер, а фильтры оберну в useCallback с правильными зависимостями. Больше никаких лишних перерисовок.