Switch
Визуализация первого дочернего элемента <Route>
или <Redirect>
, который соответствует местоположению.
Чем это отличается от простого использования набора s?
<Switch>
уникален тем, что он отображает маршрут исключительно.Напротив, каждый <Route>
, который соответствует местоположению, рендерится включительно.Рассмотрим этот код:
<Route path="/about" component={About}/>
<Route path="/:user" component={User}/>
<Route component={NoMatch}/>
Если URL-адрес / about, то <About>
, <User>
и <NoMatch>
будут отображаться, поскольку все они соответствуют пути.Это сделано специально, что позволяет нам составлять <Route>
s в наших приложениях различными способами, такими как боковые панели и хлебные крошки, вкладки начальной загрузки и т. Д.
Иногда, однако, мы хотим выбрать только один <Route>
длявизуализации.Если мы находимся на / о, мы не хотим также сопоставлять /: пользователя (или показывать нашу страницу «404»).Вот как это сделать с помощью Switch:
import { Switch, Route } from 'react-router'
<Switch>
<Route exact path="/" component={Home}/>
<Route path="/about" component={About}/>
<Route path="/:user" component={User}/>
<Route component={NoMatch}/>
</Switch>