Я использую реагирующий маршрутизатор v4, и у меня есть страница с несколькими компонентами.
- Область фильтра
- Область результатов
- Реклама
Теперь, когда пользователь снимает флажок (т. Е. Ford), область результатов должна заполняться результатами, имеющимися у производителя Ford.
Одно из требований, которое я имею, заключается в том, что я должен бытьвозможность скопировать URL-адрес, а затем вставить его в новую вкладку, и должны появиться такие же результаты.
Я, конечно, собираюсь сделать то же самое, что и все остальные, и добавить критерии к URL-адресу
/results?manufacturer=Ford
Я собирался использовать реагирующий маршрутизатор, чтобы сделать это
this.props.history.replace(path)
, однако это, кажется, вызывает повторный рендеринг страницы (включая ComponentsDidMount), и мне интересно, не будет ли этоболее эффективно изменить URL-адрес за пределами маршрутизатора реагирования, чтобы остановить этот повторный рендеринг.
Мне придется выполнить повторный рендеринг в любом случае, так как состояние будет меняться, когда они отметят флажок.
Однако мне интересно, если делать этореагировать на маршрутизатор, если я вызываю больше, чем нужно для рендеринга (т. е. все ComponentsDidMount будут переопределяться, все на странице, вероятно, будет перерисовываться как рекламные компоненты ???), так как по сути кажется, что я почти обновляюсьстраницы.
Редактировать
Я знаю, каким бы способом я ни придумал, мне придется обрабатывать кого-то, копирующего URL-адрес, в новый браузер / вкладку того, что и при загрузке придется читать.
Моя проблема заключается в том, что сейчас, когда я проверяю флажок, эта строка отображается в моем обработчике onChange
this.props.history.replace(path)
страница полностью обновляется, и это мне кажется неэффективным.
Я попытаюсь создать пример с кодом, но я пока не уверен, как настроить все библиотеки и прочее, чтобы этот пример работал.