Кажется, есть некоторая путаница с тем, что использовать над другим:
<Link to='/some/path'>
<Redirect to='/some/path'/>
history.push('/some/path')
Я уже некоторое время использую React / Router, и разные посты / ответы говорят о том, когда их использовать, и иногда они не совпадают с тем, что сказал кто-то другой. Поэтому я думаю, что мне нужно кое-что прояснить.
Из того, что я понимаю о Link
и этой документации это:
Предоставляет декларативную и доступную навигацию по вашему приложению.
Из того, что я понимаю о Redirect
и этой документации это:
Перейдет на новое место. Новое местоположение переопределит текущее местоположение в стеке истории, как это делают перенаправления на стороне сервера (HTTP 3xx).
Кажется, что все сообщения, которые я прочитал, почти все используют Redirect
для навигации по этому приложению, и никто никогда не рекомендует использовать Link
, как в этом сообщении .
Теперь history
может делать то же самое, что и Link
и Redirect
, за исключением того, что у меня есть трассировка стека истории.
Вопрос 1: Когда я захочу использовать Link
против Redirect
, какой вариант использования над другим?
Вопрос 2: Поскольку history
может направлять пользователя в другое приложение в приложении с дополнительным бонусом стека истории, я должен всегда просто использовать объект истории при маршрутизации?
Вопрос 3: Если я хочу направить за пределы приложения, какой лучший способ сделать это? Якорный тег, Window.location.href, Redirect, Link, ничего из вышеперечисленного?