Как синхронизировать фильтры каталога с URL

Считайте URL источником выбранных фильтров, проверяйте значения по допустимому набору и строите запрос из нормализованного состояния. Изменение фильтра должно обновлять URL и сбрасывать пагинацию.

Короткий ответ

Что ответить на собеседовании

Считайте URL источником выбранных фильтров, проверяйте значения по допустимому набору и строите запрос из нормализованного состояния. Изменение фильтра должно обновлять URL и сбрасывать пагинацию.

Подробный разбор

Ответ с пояснениями

Условие

Список лотов фильтруется по city и rooms. Допустимые значения приходят в API. Фильтры должны восстанавливаться по прямой ссылке и при Back/Forward. Предложите поток данных.

Ответ

Считайте URL источником выбранных фильтров, проверяйте значения по допустимому набору и строите запрос из нормализованного состояния. Изменение фильтра должно обновлять URL и сбрасывать пагинацию.

Пример: ?city=kazan&rooms=2. Используйте URLSearchParams, не конкатенацию непроверенных строк. Заранее выберите push или replace для истории. На popstate заново прочитайте параметры. Устаревшие ответы запросов не должны перезаписывать новые результаты. Неизвестный фильтр либо отбросьте с понятным default, либо покажите ошибку по согласованному контракту.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее