주로 패키지의 역할과 사용 대상에 있습니다.
react-router-dom과 react-router-native 같은 환경별 패키지들이 이 라이브러리를 기반으로 동작합니다.BrowserRouter, Link 등)를 제공하지 않습니다.react-router-domreact-router를 기반으로 브라우저 환경에서 필요한 기능을 추가한 것입니다.BrowserRouter, HashRouter, Link, NavLink, useParams, useNavigate 같은 기능들을 제공합니다.| 패키지 | 역할 | 주요 컴포넌트 |
|---|---|---|
react-router | 라우팅의 핵심 기능을 제공하는 코어 패키지 | <Routes>, <Route> |
react-router-dom | 브라우저 환경에서 라우팅을 가능하게 해주는 패키지 | <BrowserRouter>, <HashRouter>, <Link>, <NavLink> |
아래는 react-router-dom을 사용하는 기본적인 예제입니다.
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";
function Home() {
return <h1>Home</h1>;
}
function About() {
return <h1>About</h1>;
}
function App() {
return (
<BrowserRouter>
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</BrowserRouter>
);
}
export default App;
이처럼 실제 웹 애플리케이션에서 라우팅을 구현할 때는 react-router-dom을 사용해야 합니다.
💡 즉, react-router는 라우팅의 기본 기능만 제공하는 반면, react-router-dom은 브라우저 환경에 맞게 추가 기능을 제공하는 패키지입니다!