/q-solutions

Проект в рамках простого интереса с целью собрать быстрые решения по каким-то проблемам, появляющиеся постепенно.

Primary LanguageTypeScript

QSolutions

Проект в рамках простого интереса с целью собрать быстрые решения по каким-то проблемам, появляющиеся постепенно.

Приложение разворачивается на Netlify и его можно посмотреть по ссылке: QSolutions

Описание

QSolutions был создан как для сбора быстрых решений различных проблем, с которыми сталкивался во время разработки.

Проблемы

Описание проблемы и дополнительное словоблудие.

Virtual List

Виртуализация списка - это метод рендеринга только видимых элементов большого списка данных, что помогает экономить память и повышать производительность. Вместо того, чтобы рендерить весь список сразу, отображается только небольшая часть, которая видна пользователю, и обновляется по мере прокрутки.

Как он работает?

  1. Определение видимой области: Вычисляется область экрана, в которой элементы списка должны быть видимы.
  2. Рендеринг видимых элементов: Рендерятся только те элементы, которые находятся в этой видимой области.
  3. Обновление по мере прокрутки: По мере прокрутки списка видимые элементы обновляются, и предыдущие элементы удаляются из DOM.

Главные моменты для создания виртуального списка

Чтобы каждый мог написать виртуальный список, следуйте этим шагам:

  1. Подготовьте список данных: Убедитесь, что у вас есть массив данных, который необходимо отобразить.
  2. Определите размеры элементов: Знайте высоту (или ширину для горизонтального списка) каждого элемента списка.
  3. Создайте контейнер для прокрутки: Определите область, в которой будет происходить прокрутка, и установите для нее фиксированную высоту и свойство overflow-y: auto.
  4. Рассчитайте видимые элементы: Используйте прокрутку контейнера для вычисления индексов первых и последних видимых элементов.
  5. Рендеринг только видимых элементов: Отображайте только те элементы, которые попадают в видимую область.
  6. Обновляйте видимые элементы по мере прокрутки: Добавьте обработчик события прокрутки, чтобы обновлять видимые элементы по мере прокрутки списка.