Relative Links

양은지·2023년 5월 8일
0

React

목록 보기
26/27

Relative Links

<a href> 태그처럼 <Link to>, <NavLink to>도 상대 경로를 지정할 수 있다. 특히 nested routes 구축 시 용이하게 사용할 수 있다.

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

위와 같이 Route를 설정해놓은 상태에서 "https://example.com/home/project/123" 에 접속해 있다고 가정해보면 <Link to>에 지정한 상대 경로들은 다음과 같다.

주의할 것은 <Link to=".."> 가 "/home/project" 가 아닌 "/home"으로 간다는 사실이다. 이는 url segments 가 아닌 component hierachy를 따라 변경되기 때문이다.

만약 url segments 기준으로 변경되길 원하면 맨 마지막 <Link to=".." relative="path">처럼 사용하면 된다.

상대 경로는 항상 렌더링 되는 곳의 경로에만 영향을 주며, 전체 URL을 변경하지 않는다. Client-side router의 특징으로 Project 컴포넌트보다 더 깊은 <Task />를 렌더링하기 위해 <Link to="abc">로 navigate하여도 <Project />의 참조가 변하지는 않는다. (참조가 변하지 않는다는 개념은 아직 완전히 이해를 못해서, 더 찾아봐야 할 것 같다..)

References

profile
eunji yang

0개의 댓글