React-Router: qual è lo scopo di IndexRoute?


102

Non capisco quale sia lo scopo dell'utilizzo di IndexRoute e IndexLink . Sembra che in ogni caso il codice qui sotto avrebbe selezionato prima il componente Home a meno che il percorso About non fosse attivato.

<Route path="/" component={App}>
  <IndexRoute component={Home}/>
  <Route path="about" component={About}/>
</Route>

vs

<Route path="/" component={App}>
  <Route path="home" component={Home}/>
  <Route path="about" component={About}/>
</Route>

Qual è il vantaggio / scopo qui del primo caso?


Perché dovrebbe Homeessere scelto nel primo esempio, a meno che il percorso non fosse /home? Controlla la spiegazione nei documenti: github.com/rackt/react-router/blob/master/docs/guides/basics/…
Michelle Tilley,

Puoi immaginare che main sia una barra di navigazione e che Home e About siano la pagina principale su cui puoi fare clic sulla barra di navigazione.
Nick Pineda

2
Nell'esempio in alto, andando a /renderizzare Appcon Homepassato come figlio. Nell'esempio in basso, andando a /renderebbe Appcon nessuna Home o Aboutviene reso, perché nessuno di loro percorsi corrispondono.
Michelle Tilley,

2
Ohh !!! Potresti metterlo come risposta in modo che possa darti credito? Grazie!
Nick Pineda

3
Nel passaggio da v0.13 a v1.0 hanno cambiato il nome da DefaultRoutea IndexRoute. Trovo che "default" descriva meglio lo scopo. github.com/rackt/react-router/blob/master/…
Clarkie

Risposte:


101

Nell'esempio in alto, andando a /renderizzare Appcon Homepassato come figlio. Nell'esempio in basso, andando a /renderebbe Appcon HomeAboutviene reso, perché nessuno di loro percorsi corrispondono.

Per le versioni precedenti di React Router, maggiori informazioni sono disponibili nella pagina Index Route e Index Links della versione associata . A partire dalla versione 4.0, React Router non utilizza più l' IndexRouteastrazione per raggiungere lo stesso obiettivo.


3
Quindi cosa potremmo usare in pratica questa funzione?
seasonqwe

1
Ad esempio, possiamo creare un contenitore padre, diversi percorsi figlio e impostare uno di questi percorsi figlio come predefinito (IndexRoute). Oppure, se non abbiamo bisogno di un percorso figlio predefinito e dobbiamo suggerire all'utente che deve scegliere qualcosa (non IndexRoute quindi)
Olga Gnatenko

1
@ AlexHopeO'Connor Grazie, ho aggiornato la seconda metà della risposta
Michelle Tilley

cosa significa esattamente passato da bambino? caricamento in background? essere in grado di accedere agli oggetti di scena? altro?
StLia
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.