😺

【初心者向け/ITスクール 88日】React Router

2023/11/23に公開

はじめに

今日は、ITスクールに通った88日目の日で、今日学んだ知識を記事にシェアしたいと思います。本記事が、ITを勉強を始めた方々にもロードマップになればいいと思います。

今日は、React Routerを使いながら、ページUIを動的に転換することを自習学習しました。SpringBootのPathVarialbeと使えば、効率がよさそうな気がしました。

ReactRouter

useNavigate

index.
import { BrowserRouter } from 'react-router-dom';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </React.StrictMode>
);
App
import { Routes, Route, useNavigate, Outlet } from 'react-router-dom';

fuction App(){
  let navigate = useNavigate();
}

useStateのように、useNavigate()をimportします。let navigateは関数になります。
このような便利な機能を持っている関数をReact Hookといいます。

<Nav className='me-auto'>
   <Nav.Link onClick={() => {navigate('/');}}>Home</Nav.Link>
  <Nav.Link onClick={() => {navigate('/detail');}}>Detail</Nav.Link>
</Nav>

これによって、すぐ動的UIを作ることができます。
hrefの場合、GET要請をしますので、一度refreshになりますが、LinkのTo設定はUIのみ変更することができます。

Routes, Route, Outlet

<Routes>
  <Route path="/" element={<><span>wow</span></>}/>
  <Route path="*" element={<h1>ERROR<h1/>}/>
</Routes>

URL pathがhome linkになり、指定していないkeywordを入力した場合、エラーページComponentに交換されます。

また、一つのRouteをまた、ネストすることもできます。

<Route path="/members" element={<Members/>}>
  <Route path="name" element={<><span>john</span></>}/>
  <Route path="age" element={<><span>15</span></>}/>
</Route>
members/
members/name <- outlet
members/age <- outlet
function Members(){
  return (
    <div>
      <h4>Members</h4>
      <Outlet></Outlet>
    </div>
  )
}

Discussion