【React】ルーティングする【react-router-dom】
2024-7-9 | React, TypeScript
Reactでreact-router-dom
を使ってルーティングしたい!
概要
今回の記事では、Reactでreact-router-dom
を使ってルーティングする手順を掲載する。
仕様書
環境
- node v21.1.0
- npm 10.8.1
- react 18.3.1
- react-dom 18.3.1
- react-router-dom 6.24.1
手順書
インストール編とルーティング編の2部構成です。
インストール編
プロジェクトにreact-app-rewired
をインストールする。
npm install --save react-router-dom
ルーティング編
index.tsx
にルーティングの設定をする例。
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { Route, Routes, BrowserRouter } from 'react-router-dom';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
<React.StrictMode>
<BrowserRouter>
<Routes>
<Route path={"/"} element={<div>index!</div>} />
<Route path={"/login"} element={<div>login!</div>} />
<Route path={"/logout"} element={<div>logout!</div>} />
<Route path={"/privacy"} element={<div>privacy!</div>} />
</Routes>
</BrowserRouter>
</React.StrictMode>
);
reportWebVitals();
<BrowserRouter>
の中の<Routes>
の中にルーティングの設定毎に<Route>
を配置する。
上記の設定ではURLがhttp://example.com
だとするとpath
の設定によって/
はhttp://example.com
、/login
はhttp://example.com/login
、/logout
はhttp://example.com/logout
、/privacy
はhttp://example.com/privacy
に対応する。対応したURLにアクセスすると対応したelelemt
が表示される。
まとめ(感想文)
ASP .NET Coreの中でReactを動かしてる場合は、react-router-dom
がうまく動かないので注意。