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 né Home né Aboutviene 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.