React Router
分かりやすくないので、正直あまり好きではない
htmlファイル一個作ってaタグ書くだけだったはずの作業がなんでこんなことに
<Redirect>
とか、コンポーネントで考えない方がいいんじゃないか
おおざっぱに言うと
1. Routerで全部をかこって
<BrowserRouter>
とか <HashRouter>
とか
なんか特殊なhistoryオブジェクトをごにょごにょしてくれるらしい
2. routingごとに表示したい内容をRouteで定義して
3. Linkでリンクする
Route
locationのpathnameが <Route>
の path
propと比較され、マッチした場合に当該 <Route>
の中身がrenderされる
マッチしなかったやつはnullがrenderされる
jsx<Route path='/about' component={About}/>
<Route path='/contact' component={Contact}/>
<Route component={Always}/>
<Switch>
で囲った場合、その中の最初にマッチしたやつだけがrenderされる
jsx<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
{/* when none of the above match, <NoMatch> will be rendered */}
<Route component={NoMatch} />
</Switch>