[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 컴포넌트가 렌더링됩니다.

중첩 라우팅의 장점

중첩된 라우팅을 사용하면 다양한 장점을 얻을 수 있습니다.

  1. 구조적인 설계: 중첩된 라우팅을 사용하면 애플리케이션의 구조를 분리된 모듈로 설계할 수 있습니다. 각 모듈은 독립적인 라우터와 컴포넌트를 가지게 되므로 유지보수와 확장성이 용이해집니다.
  2. 중복 코드 감소: 중첩된 라우터를 사용하면 공통된 레이아웃이나 네비게이션을 한 번 정의하고 중복되는 코드를 줄일 수 있습니다.
  3. 깊은 레벨의 라우팅: 중첩된 라우터를 사용하면 다수의 컴포넌트를 겹쳐서 렌더링하는 깊은 레벨의 라우팅도 간편하게 구현할 수 있습니다.

참고 자료

이상으로 리액트 라우터의 네스팅과 중첩 라우팅에 대해 알아보았습니다. 네스팅된 라우터를 이용하여 보다 유연하고 구조적인 리액트 애플리케이션을 개발해보세요.