title: React-Router - Link vs Redirect vs History
body: <p>There seems to be some confusion with what to use over the other:</p>
  
  <ul>
  <li><code>&lt;Link to='/some/path'&gt;</code></li>
  <li><code>&lt;Redirect to='/some/path'/&gt;</code></li>
  <li><code>history.push('/some/path')</code></li>
  </ul>
  
  <p>I have been using React/Router for a little while now, and different posts/answers say different things regarding when to use these, and sometimes they don't line up with what someone else said. So I think I need some clarification on this.</p>
  
  <h3>From what I understand about <code>Link</code> and this <a href="https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/Link.md" rel="noreferrer">documentation</a> it:</h3>
  
  <blockquote>
    <p>Provides declarative, accessible navigation around your application.</p>
  </blockquote>
  
  <h3>From what I understand about <code>Redirect</code> and this <a href="https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Redirect.md" rel="noreferrer">documentation</a> it:</h3>
  
  <blockquote>
    <p>Will navigate to a new location. The new location will override the current location in the history stack, like server-side redirects (HTTP 3xx) do.</p>
  </blockquote>
  
  <p>It seems like all the posts I have read almost everyone uses <code>Redirect</code> to navigate around there application, and no one ever recommends using <code>Link</code> like in this <a href="https://stackoverflow.com/questions/46757676/in-react-is-it-always-better-to-render-a-redirect-than-use-this-props-history-pu?rq=1">post</a>.</p>
  
  <p>Now <code>history</code> can do the same thing as <code>Link</code> and <code>Redirect</code> except I have a history stack trace.</p>
  
  <p><strong>Question 1:</strong> When would I want to use <code>Link</code> vs <code>Redirect</code>, what's the use case over the other?</p>
  
  <p><strong>Question 2:</strong> Since <code>history</code> can route a user to another location in-app with the added bonus of the history stack, should I always just use the history object when routing?</p>
  
  <p><strong>Question 3:</strong> If I want to route <em>outside</em> of the app, what's the best method to do so? Anchor tag, Window.location.href, Redirect, Link, none of the above?</p>