web-dev-qa-db-de.com

reakt-Router Umleitung vs history.push

Ich las Reakt-Router-Redux-Beispiele und verwirrte:.... Was ist der Unterschied zwischen:

import { Redirect } from 'react-router-dom'

...

<Redirect to='/login' /> 

und 

import { Push } from 'react-router-redux'

...

Push('/login')
9
tandav

Weiterleitung

Beim Rendern eines <Redirect> wird an einen neuen Ort navigiert. Der neue Speicherort wird override the current location in the history stack, wie serverseitige Weiterleitungen (HTTP 3xx) ausgeführt.

Geschichte

Push-Funktion Pushes a new entry onto the history stack

16
Revansiddh

Die <Redirect>-Komponente ersetzt standardmäßig den aktuellen Speicherort durch einen neuen Speicherort im Protokollstapel, der im Wesentlichen als serverseitige Umleitung fungiert.

Es kann jedoch auch mit der Eigenschaft Push verwendet werden. In diesem Fall wird ein neuer Eintrag in den Protokollstapel verschoben. Dies funktioniert genauso wie history.Push.

Tatsächlich verwendet die <Redirect>-Komponente hinter der Szene die historie-Methoden Push und replace. Es ist nur eine reaktionsschnellere Art zu navigieren.

Grundsätzlich haben Sie zwei Möglichkeiten zu navigieren:

  1. Verwenden Sie history.Push und history.replace in einer Komponente (normalerweise umwickelt mit dem HOC withRouter), sodass Sie auf das location-Objekt zugreifen können, ohne es vom übergeordneten zum untergeordneten Objekt übergeben zu müssen.

  2. Verwenden Sie die <Redirect>-Komponente mit oder ohne die Push-Eigenschaft 

1
Marcos Abreu