Я работаю над веб-приложением React с серверной частью Asp.Net Core + Typescript. Маршрутизация находится на внешнем интерфейсе, управляемом React-Router v4. Пока все работает нормально.
Кстати, бывают случаи, когда мне нужно (я хочу) перенаправить маршрутизацию сервером вместо того, чтобы пропустить ее в логику браузера. Например, я хочу принудительно перенаправить на определенную страницу, когда файл cookie отсутствует или просрочен.
Как, например, если я использую что-то вроде <Redirect to="/reserved" />
, React.Router делает все возможное: направляется к «зарезервированной» странице, но это не то, что я хочу. Мне нужно, чтобы этот путь был предоставлен серверу, то есть в обход обходной интерфейсной маршрутизации.
В таких случаях решение, которое я нашел, состоит в том, чтобы установить желаемый путь следующим образом:
window.location.href = '/reserved';
Это похоже на отправку запроса нового пути прямо на сервер без (явного) участия в React.Router. Видимо, все работает нормально, как я ожидаю.
Вопрос в том, является ли это надежным способом достижения желаемого поведения, или это выглядит весьма вероятным взломом (и я должен избегать его)?