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