Есть 2 представления: в виде списка с infinite loading, и в виде таблички с пагинацией по страницам.
Проблема: при первичном запросе список заполняется null по общему количеству объектов в списке (их +-200, не так много). При подгрузке данных через табличку я просто беру нужный offset (количество элементов на странице * страницу), и заменяю элементы в списке по индексу с этого offset, все работает хорошо и как нужно
Однако, логика работает плохо с infinite loading, поскольку Vue не умеет отлавливать изменения элементов в списке по индексу, и мне приходится обновлять весь список через key родительского объекта. Из-за этого весь каждый элемент списка при подгрузке новых объектов отрисовывается заново, то есть при подгрузке с 20 по 30 отрисовываются все 30, а не только подгруженные 10, что очень плохо с точки зрения производительности.
Вдруг кто-то сталкивался с похожим, как лучше организовать хранилище, чтобы оно работало и для таблички, и для бесконечного списка, и чтобы элементы в списке рендерились только новые?
Привет. Сейчас сам тоже изучаю выгрузку таблиц. Можно попробовать запомнить последний полученный last_id , и в sql запросе добавить условие where id > last_id. Полученный ответ добавлять конкантенацией к основному массиву.
Обсуждают сегодня