React Router 는 "Client Side Routing" 을 가능하게 합니다.

기존 웹사이트에서는 브라우저가 웹 서버에 문서를 요청하고 CSS 및 JavaScript 자산을 다운로드 및 평가한 후 서버에서 전송된 HTML 을 렌더링합니다. 사용자가 링크를 클릭하면 새 페이지에 대한 프로세스를 처음부터 다시 시작합니다.

Client Side Routing 을 사용하면 앱에서 서버에 다른 문서를 요청하지 않고도 링크 클릭으로 URL 을 업데이트할 수 있습니다. 대신 앱에서 즉시 새 UI를 렌더링하고 fetch 를 통해 데이터를 요청하여 새 정보로 페이지를 업데이트할 수 있습니다.

이렇게 하면 브라우저가 완전히 새로운 문서를 요청하거나 다음 페이지를 위해 CSS 및 자바스크립트 에셋을 다시 평가할 필요가 없으므로 사용자 경험이 더 빨라집니다. 또한 애니메이션과 같은 보다 역동적인 사용자 경험을 제공할 수 있습니다.

Client Side Routing 은 Router 를 생성하고 Link<Form> 을 사용하여 페이지에 linking/submitting 으로써 가능하게 됩니다.

import * as React from "react";
import { createRoot } from "react-dom/client";
import {
  createBrowserRouter,
  RouterProvider,
  Route,
  Link,
} from "react-router-dom";

const router = createBrowserRouter([
  {
    path: "/",
    element: (
      <div>
        <h1>Hello World</h1>
        <Link to="about">About Us</Link>
      </div>
    ),
  },
  {
    path: "about",
    element: <div>About</div>,
  },
]);

createRoot(document.getElementById("root")).render(
  <RouterProvider router={router} />
);