Главная/React и Next.js/Блупринты/Стейт & Real-time/Виртуализированный каталог на 100 000+ позиций с TanStack Virtual и скроллом
К карточкам раздела «Стейт & Real-time»Стейт & Real-time(ТЗ 6 из 10)
ТЗ: Виртуализированный каталог на 100 000+ позиций с TanStack Virtual и скролломТрудозатраты~12 рабочих часов
Фриланс вилка~$540 – $900 (€480 – €840)
Оценка веб-студии~$1,140 – $1,920 (€1080 – €1800)
ТЗ заказчика (исходный бриф):
Никаких зависаний при прокрутке. Таблица должна рендерить в DOM только видимые строки (15-20 штук) и мгновенно скроллиться на 100 000-ю строку без создания сотен тысяч DOM-узлов.
Ключевые требования:
- •Использование TanStack Virtual для виртуализации окон (windowing)
- •Поддержка динамической высоты строк через measureElement
- •Бесконечная подгрузка страниц чанками по 100 записей через fetchNextPage
- •Сохранение позиции скролла при переходе в карточку товара и возврате обратно
Ограничения проекта:
- •Количество DOM-узлов таблицы не должно превышать 50 независимо от размера каталога
- •Запрет на блокировку главного потока при быстром fling-скролле
Критерии приёмки (KPI):
- Потребление памяти браузером < 80 МБ при 100k записях
- Interaction to Next Paint (INP) < 40ms при фильтрации
Пошаговое практическое руководство по ТЗ
Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу: