React Router

react-router-dom ver.6

κ³΅μ‹λ¬Έμ„œ

Installation

npm i react-router-dom

Configuring Routes

  • v6둜 λ°”λ€Œλ©΄μ„œ switchλŠ” Routes둜 λŒ€μ²΄λ˜μ—ˆμŒ

  • <Route><Route/> 사이에 μžμ‹ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ„£λŠ” 방식이 μ•„λ‹Œ element속성을 톡해 μžμ‹ μ»΄ν¬λ„ŒνŠΈλ₯Ό 할당함

import {
  BrowserRouter,
  Routes,
  Route,
} from "react-router-dom";

const Router = () => {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />}>
          <Route index element={<Home />} />
          <Route path="teams" element={<Teams />}>
            <Route path=":teamId" element={<Team />} />
            <Route path="new" element={<NewTeamForm />} />
            <Route index element={<LeagueStandings />} />
          </Route>
        </Route>
      </Routes>
    </BrowserRouter>
  );
}
  • Linkμ»΄ν¬λ„ŒνŠΈλ₯Ό 톡해 μœ μ €μ˜ URL을 λ°”κΏ€ 수 있음

Reading URL Parameters

  • v6 μ΄μƒλΆ€ν„°λŠ” μžλ™μœΌλ‘œ type|undefindμž„μ„ μ•Œ 수 있음(interface ν•„μš”μ—†μŒ)

useLocation()

Nested Routes

  • RouteλŠ” μ„œλ‘œ 쀑첩될 수 있음(λΆ€λͺ¨λ₯Ό μƒμ†ν•˜λŠ” μžμ‹)

  • λ Œλ”λ§ μœ„μΉ˜λŠ” λΆ€λͺ¨ μš”μ†Œμ˜<Outlet />의 μœ„μΉ˜λ₯Ό 따름

  • URL에 따라 λ³€κ²½λ˜λŠ” λ‚΄λΆ€ μ„Ήμ…˜μ΄ μžˆλŠ” λ ˆμ΄μ•„μ›ƒμ—μ„œ UIλ₯Ό λ§Œλ“œλŠ”λ° 적합함, 즉 ν•œκ°œμ˜ 루트 λ ˆμ΄μ•„μ›ƒμ—μ„œ URL에 따라 일뢀 λ‚΄λΆ€ μ»¨ν…μΈ λ§Œ λ³€κ²½λ˜λŠ” UIλ₯Ό λ§Œλ“€ 수 있음

Last updated