Как работать с параметрами запроса в реагировать + реагировать-маршрутизатор + поток

Я пытаюсь заменить приложение Backbone.Marionette на React, и мне трудно думать о параметрах запроса. Я думаю, что мне не хватает по-настоящему простого покоя в понимании этой схемы, поэтому я прошу прощения, если этот вопрос совершенно бессмысленный. Я был бы признателен за любую поддержку или просто указать мне направление, в котором я могу найти Google более конкретно.

Есть/users страница, на которой перечислены пользователи, и вы можете фильтровать пользователей через панель поиска. Поэтому, если вы хотите отфильтровать пользователей, в имени которых содержится «joe», я бы сделал запрос к серверу с такими параметрами запроса, как/users?username=joe, Кроме того, я могу разбить на страницы, добавивpage параметр тоже (/users?username=joe&page=1).

Если бы я думал только о функциональности, поток, вероятно, был бы

Клиент вставляетjoe на элемент ввода и кликиПоиск.Нажав наПоиск кнопка запускаетAction (как Action.getUser).Action делает запрос к серверу и получает результатыDispatcher отправляет функцию с полезной нагрузкой результатов кому угодно (обычноStore) заинтересован вAction.Storeсостояние меняется с новым результатом, полученнымActionВид (Component) перерисовывает, слушаяStoreСмена.

и работает как положено. Однако я хотел бы, чтобы Клиент мог добавить в закладки текущий отфильтрованный результат и вернуться на ту же страницу через некоторое время. Это означает, что мне понадобится где-то сохранить явную информацию о поисковом запросе, сделанном Клиентом, который обычно является URL-адресом (я прав?). Поэтому мне нужно обновить URL с параметрами запроса, чтобы сохранить условие поиска (/users?username=joe&page=1).

Что меня смущает, так это где и когда обновлять URL? То, что я могу придумать прямо сейчас, это 2 варианта ниже - и они, кажется, не совсем чистые.

Опция 1Клиент вставляетjoe на элемент ввода и кликиПоиск.Нажав наПоиск кнопка запускает переход ReactRouter с новыми параметрами запроса (/users?username=joe&page=1).Вид (Component) получает новые параметры черезthis.props.params а такжеthis.props.query.Вид (Component) разжигаетAction лайкAction.getUser в зависимости от параметров запроса, которые он получает - в этом случаеusername=joe&page=1.

после этого то же самое, что и выше

Вариант 2 (только 6 отличается от того, что я объяснил выше)Клиент вставляетjoe на элемент ввода и кликиПоиск.Нажав наПоиск кнопка запускаетAction (как Action.getUser).Action делает запрос к серверу и получает результатыDispatcher отправляет функцию с полезной нагрузкой результатов кому угодно (обычноStore) заинтересован вAction.Storeсостояние меняется с новым результатом, полученнымActionВид (Component) перерисовывает, слушаяStoreСмена.И как-то (пока не знаю как) обновляет свой URL в зависимости от егоprops (лайкthis.props.searchusername, а такжеthis.props.searchpage)

Какова лучшая практика обработки параметров запроса? (или это может не относиться к параметрам запроса) Я полностью не понимаю шаблон проектирования или архитектуру? Заранее спасибо за любую поддержку.

Некоторые статьи, которые я прочитал

Любой способ получить текущие параметры или текущий запрос от маршрутизатора (за пределами компонента)?Асинхронные данные и хранилища FluxУпростите добавление параметров запросаПараметры React Router и Произвольного запроса: страница непреднамеренно обновляется при загрузке?Добавить параметры по умолчанию?

Ответы на вопрос(2)

Ваш ответ на вопрос