React react-router-domの基本的な使い方
React+TypeScriptのプロジェクトにreact-router-domを導入してSPAのアプリケーションを作成する方法を紹介します。
パッケージのインストール
まずはreact-router-domのパッケージをインストールします。
$ npm install react-router-domルーティング設定
次に、URLに対応するコンポーネントを指定します。
以下の例では、/にアクセスしたときはHomeコンポーネントを表示し、/aboutにアクセスしたときはAboutのコンポーネントを表示するように設定しています。
route.tsximport { 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.tsximport { 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.tsxconst 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>