最佳答案
似乎有一些关于使用什么的混乱:
<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,重定向,链接,都不是吗?