Сортировка списка данных, полученных через fetch
Мое приложение выглядит вот так:
В шапке должна быть возможность сортировки по соответствующему полю, с этим, собственно и проблема.
По умолчанию я хочу, чтобы отображалась сортировка по дате, и делаю это таким образом:
const getData = (url) => {
fetch(url)
.then((response) => {
if(response.ok) {
return response.json();
} else {
throw new Error('Данные были получены с ошибкой!');
}
})
.then((data) => {
// Сортировка по умолчанию = сортировка по дате
data.sort((a, b) => dataFormat(b.data) - dataFormat(a.data));
// Отрисовка списка
renderData(data);
})
.catch((error) => {
console.error(error.message);
});
};
То есть, сортирую прямо внутри fetch-запроса, но не понимаю, как правильнее записать логику сортировки по остальным полям при клике.
Пока что из идей - получать все записи из дом-дерева, при рендере засовывать в дата-атрибуты дату/размер/автора/язык и играться, например с order
(так как список сделан на флексах), но сомневаюсь, что это хорошая идея, так как подразумевает перебор большого количества данных.
Возможно, есть какие-то более "элегантые" решения?
Мне не нужен готовый код, это было бы слишком нагло, я хочу получить скорее предложения по оптимизации.