Проект в рамках простого интереса с целью собрать быстрые решения по каким-то проблемам, появляющиеся постепенно.
Приложение разворачивается на Netlify
и его можно посмотреть по ссылке: QSolutions
QSolutions был создан как для сбора быстрых решений различных проблем, с которыми сталкивался во время разработки.
Описание проблемы и дополнительное словоблудие.
Виртуализация списка - это метод рендеринга только видимых элементов большого списка данных, что помогает экономить память и повышать производительность. Вместо того, чтобы рендерить весь список сразу, отображается только небольшая часть, которая видна пользователю, и обновляется по мере прокрутки.
- Определение видимой области: Вычисляется область экрана, в которой элементы списка должны быть видимы.
- Рендеринг видимых элементов: Рендерятся только те элементы, которые находятся в этой видимой области.
- Обновление по мере прокрутки: По мере прокрутки списка видимые элементы обновляются, и предыдущие элементы удаляются из DOM.
Чтобы каждый мог написать виртуальный список, следуйте этим шагам:
- Подготовьте список данных: Убедитесь, что у вас есть массив данных, который необходимо отобразить.
- Определите размеры элементов: Знайте высоту (или ширину для горизонтального списка) каждого элемента списка.
- Создайте контейнер для прокрутки: Определите область, в которой будет происходить прокрутка, и установите для нее фиксированную высоту и свойство
overflow-y: auto
. - Рассчитайте видимые элементы: Используйте прокрутку контейнера для вычисления индексов первых и последних видимых элементов.
- Рендеринг только видимых элементов: Отображайте только те элементы, которые попадают в видимую область.
- Обновляйте видимые элементы по мере прокрутки: Добавьте обработчик события прокрутки, чтобы обновлять видимые элементы по мере прокрутки списка.