React-Router: Яка мета IndexRoute?


102

Я не розумію , що мета з допомогою IndexRoute і IndexLink . Здається, що в будь-якому випадку код нижче вибрав би компонент «Домашній» спочатку, якщо не буде активовано шлях About.

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

проти

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

Яка перевага / мета у першому випадку?


Чому Homeвибирали б у першому прикладі, якщо шлях не був /home? Перегляньте пояснення в документах: github.com/rackt/react-router/blob/master/docs/guides/basics/…
Мішель Тіллі

Ви можете уявити, що основна - це панель навігації, а головна сторінка та про неї - головна сторінка, на яку можна натиснути на навігаційній панелі.
Нік Пінеда

2
У верхньому прикладі, маючи на увазі , він /буде рендерінг Appз Homeдитиною. У нижньому прикладі, збираємося /б надавати Appз ні Home або Aboutже не бути винесено, так як ні один з їх шляхів збігаються.
Мішель Тіллі

2
Ох !!! Чи можете ви поставити це як відповідь, щоб я міг дати вам кредит? Дякую!
Нік Пінеда

3
У зміні від v0.13 до v1.0 вони змінили назву з DefaultRouteна IndexRoute. Я вважаю, що "за замовчуванням" краще описує мету. github.com/rackt/react-router/blob/master/…
Clarkie

Відповіді:


101

У верхньому прикладі, маючи на увазі , він /буде рендерінг Appз Homeдитиною. У нижньому прикладі, збирається /б надавати Appз ні Home , ні Aboutже не бути винесено, так як ні один з їх шляху збігаються.

Для старих версій React Router більше інформації можна знайти на сторінці вказівників маршрутів та посиланнях індексів відповідної версії . Починаючи з версії 4.0, React Router більше не використовує IndexRouteабстракцію для досягнення тієї ж мети.


3
То що ми могли використовувати цю функцію на практиці?
seasonqwe

1
Наприклад, ми можемо створити один батьківський контейнер, кілька дочірніх маршрутів і встановити один із цих дочірніх маршрутів за замовчуванням (IndexRoute). Або якщо нам не потрібний дочірній маршрут за замовчуванням, і нам потрібно натякнути користувачеві, що він повинен щось вибрати (тоді немає IndexRoute)
Ольга Гнатенко,

1
@ AlexHopeO'Connor Спасибі, я оновив другу половину відповіді
Мішель Тіллі

що передано в дитинстві точно означає? завантаження на задньому плані? мати можливість отримати доступ до реквізиту? інший?
StLia
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.