네, 맞습니다! React Router에서 <Link>와 <Route>를 사용할 때의 일반적인 구조는 다음과 같습니다.
📌 기본적인 구조:
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
function Home() {
return <h1>Home Page</h1>;
}
function About() {
return <h1>About Page</h1>;
}
function App() {
return (
<Router> {/* 최상위에서 감싸기 */}
{/* 네비게이션 메뉴 */}
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
</ul>
</nav>
{/* 실제 라우트 경로에 따른 페이지 렌더링 */}
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Router>
);
}
export default App;
| 요소 | 역할 |
|---|---|
<BrowserRouter> (<Router>) | React Router를 사용할 수 있도록 감싸주는 역할 (필수) |
<Link> | 페이지 이동을 위한 링크 (<a> 태그와 유사) |
<Routes> | 라우트 그룹을 감싸는 컨테이너 |
<Route> | 특정 경로에 컴포넌트를 매핑 |
ul 태그 안에 <Link>를 넣어도 되는 이유?HTML에서는 <ul>(목록) 안에 <li>(목록 항목)만 올 수 있지만,
<li> 안에는 어떤 태그든 포함 가능하므로 <Link>를 넣어도 문제없습니다.
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
</ul>
➡️ 위처럼 <li> 안에 <Link>를 넣으면 네비게이션 메뉴처럼 동작하게 됩니다.
✔️ <BrowserRouter>로 전체를 감싸기
✔️ 네비게이션 바(<ul>, <nav>) 안에 <Link> 배치 가능
✔️ <Routes> 내부에서 <Route>를 사용하여 컴포넌트 렌더링
이렇게 작성하면 URL에 따라 화면이 자연스럽게 변경되는 React 라우팅이 완성됩니다! 😊