Различить перенаправление на стороне клиента и перенаправление 302 в приложении React - PullRequest
0 голосов
/ 06 августа 2020

У меня есть приложение React / React-Router, которое требуется, чтобы знать контекст того, как пользователи попали на страницу. Могут быть два разных случая (1) перенаправление 302 (2) перенаправление на стороне клиента.

Позвольте мне добавить варианты использования, чтобы подробно рассказать об этом

(1): пользователи напрямую попадают в URL-адрес и приземление на странице

(2): пользователи нажимали кнопку и перенаправлялись на другую страницу через Link API.

Я заметил, что свойства реактивного маршрутизатора содержат объект истории и (1) действие истории - POP, в то время как в случаях перенаправления на стороне клиента (2) это было либо PUSH, либо REPLACE. Было бы неплохо предположить, что я могу учесть действие истории и определить перенаправление 302, проверив action === POP?

1 Ответ

0 голосов
/ 06 августа 2020

в соответствии с вашим конкретным вариантом использования существует несколько подходов к тому, как мы можем достичь этого, давайте go из нескольких, о которых вы упомянули в вопросе

  • Пользователь нажимает кнопку : поэтому, если у нас есть полный контроль над функциональностью кнопки, мы можем определить несколько параметров, если пользователь нажимает на нее, например, мы можем добавить параметр запроса в URL-адрес пересылки, а на следующей странице мы знаем, откуда пользователь пришел. вот так www.example.com/?referrer=oldButton это будет указывать на четкие закономерности того, как пользователь попал на страницу. или с точки зрения реагирующего маршрутизатора, мы можем передать дополнительные параметры для последующего доступа к другому компоненту.
 history.push('/path', yourData);
  • пользователи напрямую попадают в URL-адрес и попадают на страницу : вы предположили, что правильно, мы можем использовать методы POP, PU SH, REPLACE, чтобы определить, как пользователь попал на конкретную страницу c. браузер использует то, что мы называем историей, он ведет запись каждой страницы, посещенной до или после другой, мы можем использовать ее напрямую или через response-router

Надеюсь, что это помогло :)

...