HTML <a href> 와 마찬가지로, <Link to><NavLink to> 는 상대 경로를 사용할 수 있으며, 중첩 경로에 대한 향상된 동작을 제공합니다.

다음과 같은 경로가 설정된 경우,

<Route path="home" element={<Home />}>
  <Route path="project/:projectId" element={<Project />}>
    <Route path=":taskId" element={<Task />} />
  </Route>
</Route>

다음과 같은 계층으로 컴포넌트를 렌더링하는 https://example.com/home/project/123 URL 을 고려해 보겠습니다.

<Home>
  <Project />
</Home>

<Project /> 가 아래의 링크를 렌더링하는 경우, 링크의 href 는 다음과 같이 확인됩니다.

스크린샷 2023-07-19 오전 3.06.21.png

첫 번째 ..project/:projectId 경로의 두 세그먼트를 모두 제거합니다. 기본적으로, 상대 링크의 .. 는 URL 세그먼트가 아니라, route 계층 구조를 이동합니다. 다음 예제에서 relative="path” 를 추가하면, route 계층 구조 대신에 URL 세그먼트를 이동할 수 있습니다.

상대 링크는 항상 전체 URL 이 아니라 렌더링되는 route 계층 구조에 상대적 입니다. 즉, 사용자가 <Link to="abc"> 를 사용하여 /home/project/123/abc URL에서 <Task /> 로 더 깊이 탐색하는 경우, <Project> 의 href 는 변경되지 않습니다. (일반 <a href> 와 달리, client side routers 의 일반적인 문제).