Нет смысла рендерить больше данных, чем влезает в видимую область.
Это называется virtual scroll.
- посчитать высоту контейнера
- посчитать высоту элемента => получаем количество видимых
- рендерить это количество элементов
- при скролле обновлять нужные индексы и менять их содержимое, не трогая сами DOM ноды
Примеры для angular/ionic/react. Почитайте, сделайте/загуглите решение, которое Вам подойдет
https://github.com/rintoj/angular2-virtual-scroll
https://ionicframework.com/docs/api/components/vir...
https://github.com/bvaughn/react-virtualized