[javascript] 리액트 라우터의 네스팅과 중첩 라우팅
리액트 라우터(React Router)는 리액트 애플리케이션에서 라우팅을 관리하기 위한 도구입니다. 네스팅(Nesting)은 라우터를 중첩하여 복잡한 라우팅 구조를 구현하는 기능입니다.
네스팅을 사용하면 여러 라우터를 묶어서 하나의 라우터처럼 동작시킬 수 있습니다. 이를 통해 애플리케이션의 구조를 더욱 직관적이고 유연하게 설계할 수 있습니다.
네스팅된 라우터 구현하기
리액트 라우터에서 라우터를 중첩하기 위해서는 특정 컴포넌트 내부에서 다른 라우터를 정의해야 합니다. 이를 위해 Route
컴포넌트를 이용합니다.
import { Route } from 'react-router-dom';
function App() {
return (
<div>
{/* 상위 라우터 */}
<Route path="/" component={Home} />
{/* 네스팅된 라우터 */}
<Route path="/nested" component={NestedRouter} />
</div>
);
}
function NestedRouter() {
return (
<div>
{/* 중첩된 라우터 */}
<Route path="/nested/page1" component={Page1} />
<Route path="/nested/page2" component={Page2} />
</div>
);
}
위의 코드는 /nested
경로에 접근했을 때 NestedRouter
컴포넌트가 렌더링되고, 이 컴포넌트 내부에서 /nested/page1
경로와 /nested/page2
경로에 대한 라우트를 정의합니다. 따라서 /nested/page1
에 접근하면 Page1
컴포넌트가 렌더링되고, /nested/page2
에 접근하면 Page2
컴포넌트가 렌더링됩니다.
중첩 라우팅의 장점
중첩된 라우팅을 사용하면 다양한 장점을 얻을 수 있습니다.
- 구조적인 설계: 중첩된 라우팅을 사용하면 애플리케이션의 구조를 분리된 모듈로 설계할 수 있습니다. 각 모듈은 독립적인 라우터와 컴포넌트를 가지게 되므로 유지보수와 확장성이 용이해집니다.
- 중복 코드 감소: 중첩된 라우터를 사용하면 공통된 레이아웃이나 네비게이션을 한 번 정의하고 중복되는 코드를 줄일 수 있습니다.
- 깊은 레벨의 라우팅: 중첩된 라우터를 사용하면 다수의 컴포넌트를 겹쳐서 렌더링하는 깊은 레벨의 라우팅도 간편하게 구현할 수 있습니다.
참고 자료
- React Router 공식 문서: https://reactrouter.com/
- Nested Routing in React Router: https://www.pluralsight.com/guides/react-router-nested-routes
이상으로 리액트 라우터의 네스팅과 중첩 라우팅에 대해 알아보았습니다. 네스팅된 라우터를 이용하여 보다 유연하고 구조적인 리액트 애플리케이션을 개발해보세요.