Top.Mail.Ru
Ответы
Аватар пользователя
11 месяцев назад
от

Как лучше делать сортировку товаров в React-приложении?

Есть список из 30+ объектов, записанных в JSON-формате. Проект тестовый, поэтому использую JSON-server, объекты выглядят так:

1234567891011121314151617181920
 { 
    "cards": [ 
        { 
            "img": "./img/img-1.png", 
            "title": "THE IX", 
            "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", 
            "price": 15000, 
            "made": "Germany",
            "id": 1 
        },  
        { 
            "img": "./img/img-2.png", 
            "title": "THE I7", 
            "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", 
            "price": 19000, 
            "made": "USA",
            "id": 2 
        }
    ]
} 

Нужно сделать сортировку товаров по price/made, как лучше её сделать - через бек(json-server) или через front(сортировать уже на месте)? Если через бек - то нужно просто делать запрос "htp://localhost:3000/cards?_sort=price&_order=desc" - и такой запрос будет сортировать все объекты по price, по убыванию
Выглядит довольно просто, но я прочитал что маленькие объёмы данных лучше сортировать на фронте, это так?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
11мес

Через бек. Если есть возможность не писать логику на фронте, а оставить беку, то так и нужно делать. Фронт нужен исключительно для отрисовки и некоторого взаимодействия с интерфейсом.

Аватар пользователя
Оракул
11мес

В реальной жизни будет скорее всего сортировка на бэке, т.к. будет с пагинацией, такое на фронте не отсортируешь, не получив сразу все данные

Аватар пользователя
Искусственный Интеллект
11мес

Оба варианта возможны, всё зависит от ситуации. Маленькие объемы можно сортировать где угодно, но нагрузка на сервер самую малость вырастет. Если ты удалённую функцию используешь многократно и сортировать тебе нужно по разным полям, можно передавать поле для сортировки. Если это всегда одно и то же поле по-умолчанию, тогда можно сортировать без каких-либо параметров. Можно и на фронтенде сортировать обычным методом sort для массивов.