React react-router-domの基本的な使い方
React
+TypeScript
のプロジェクトにreact-router-dom
を導入してSPA
のアプリケーションを作成する方法を紹介します。
パッケージのインストール
まずはreact-router-dom
のパッケージをインストールします。
$ npm install react-router-dom
ルーティング設定
次に、URLに対応するコンポーネントを指定します。
以下の例では、/
にアクセスしたときはHome
コンポーネントを表示し、/about
にアクセスしたときはAbout
のコンポーネントを表示するように設定しています。
route.tsx
import { Route, Switch } from 'react-router-dom';
import { VFC } from 'react';
import Home from './pages/Home';
import About from './pages/About';
const routes: VFC = () => {
return (
<Switch>
<Route path="/" exact component={Home} />
<Route path="/about" exact component={About} />
</Switch>
);
};
export default routes; // これはNG
export default routes({});
上記で作成したルーティング設定をBrowserRouter
の中に入れて使用します。
App.tsx
import { VFC } from 'react';
import { BrowserRouter } from 'react-router-dom';
import routes from './routes';
const App: VFC = () => {
return <BrowserRouter>{routes}</BrowserRouter>;
};
export default App;
以下のように1つのファイルで行うことも可能です。
App.tsx
const App: VFC = () => {
return (
<BrowserRouter>
<Switch>
<Route path="/" exact component={Home} />
<Route path="/about" exact component={About} />
</Switch>
</BrowserRouter>
)
};
export default App;
以上で、ルーティングの設定は完了です。
ページ遷移
アプリケーション内のリンクなどをクリックしたときに、別のURLに遷移したい場合があります。
以下のように、Link
コンポーネントを使用すると、通常のリンクボタンの要領で画面遷移が行なえます。
import { Link } from 'react-router-dom';
// ...省略
<Link to="/">top</Link>
<Link to="/about">about</Link>