3. Router

Keyword

  • ReactRouter - RouterProvider

1. ReactRouter - RouterProvider

  • React Router v6.4에 추가된 새로운 라우팅 방식

  • 기존엔 컴포넌트 최상위에 <BrowserRouter><App>컴포넌트를 감싸줬다.

  • 해당 방식은 라우터 객체를 만들어 라우팅 정보만 별도의 파일로 관리

  • 중첩된 경로는 children을 이용

  • <App>컴포넌트를 거치지 않고 바로 브라우저 라우터를 생성 후 사용한다.

src/routes.tsx

import { Outlet } from 'react-router-dom';

function Layout() {
  return (
    <div>
      <Header />
      <Outlet />
      <Footer />
    </div>
  );
}

const routes = [
  {
    element: <Layout />,
    children: [
      { path: '/', element: <HomePage /> },
      { path: '/about', element: <AboutPage /> },
    ],
  },
];

export default routes;

src/App.tsx

추가 키워드

Outlet

  • v6부터 컴포넌트의 children처럼 중첩 라우팅이 가능해짐

  • 예를 들면, /member/member/:memberId 라우트가 각 한 줄씩 차지했는데 member하위에 :memberId 쿼리파라미터 라우트를 추가하면 중첩 라우팅이 가능

  • 하위 라우트는 url path 세그먼트를 반복할 필요가 없음

  • 중첩라우팅을 구성 후 <Outlet> 컴포넌트로 상위 컴포넌트를 레이아웃화 할 수 있다.

  • 구성한 중첩 라우팅은 <Outlet>을 통해 자식 컴포넌트를 표현하고 상위 컴포넌트를 고정적으로 보여줄 수 있다.

Last updated