и в адресной строке дублируется запрос?
Ну вы можете повесить onChange на input и в этом обработчике управлять параметрами в адресной стороке через useSearchParams из реакт роутера доке есть пример, правда с onSubmit формы, но суть одна и таже https://reactrouter.com/en/main/hooks/use-search-params или напрямую работать с history api в этом же обработчике const url = window.location.pathname + (urlSearch ? `?${urlSearch}` : '') + window.location.hash; window.history.replaceState({}, '', url); какой способ выбрать? ну это уже вкусовщина, одни ругают роутер и кроме того в вашем проекте его может и не быть. Другие его наоборот рекомендуют
А почему нельзя new urlsearchparams использовать?
А я вот ХЗ произойдет ли переход на новый адрес при изменении параметра в url если мы его в urlsearchparams через set изменим. Я им просто для этих целей не пользовался. ВОзможно и можно. По идее при изменении параметра в url нам надо не переходить по новому адресу, а просто изменить текущий. Может быть это можно и через urlsearchparams, а может и нет
а вообще как практика показывает? сейчас юрлпараметры вообще используют? мне кажется уже лет 10 не видел таких сайтов
навскидку HH их пользует Ну вот допустим я хочу сохранить отобранные мной вакинсии например удаленка-реакт 1-3 года опыта а потом я эту ссылку хочу отправить коришам, что бы они тоже себе чет подходящее нашли как мне это сделать без url параметров? в общем информация об устареании url-параметров несколкьо преувеличена?
Всегда использовали и всегда будут
ну и просто ссылку например в избранное сохранить не хранить же это все в localStorage
а если углубиться в реакт как бы ты делал
так это же вроде как просто внешнее поведение сайта то что мы это реализуем например на реакте или без реакта это уже просто выбор технологии. А так наверно в реакте просто через санку редакса менял бы эти параметры через HISTORY API
ну допустим фильтрация продуктов, параметры фильтра транслируем в юрл параметры и делаем запрос к беку. параметры фильтра доставать из юрла и пропихивать в фетч
ща почитаю что такое history api
ну реакт роутер это фактически обертка над этим АПИ
Плохой вариант очень
в реакт пицце именно так он учил)
а как правильно? сохраняю в стейте и в юрл, а в фетч беру со стейта?
Потому что url это глобальная никак не типизированная "переменная"
тебе в любом случае из него читать при рефреше страницы, так что зачем создавать два источника данных?
Ну мы ж данные из бэкенда не читаем на постоянной основе? Мы их в стейт перекладываем
Обсуждают сегодня