[TIL] react-router v6

👉🏼 KIM·2024년 10월 23일

TIL

목록 보기
25/54

오늘 공부한것 & 기억하고 싶은 내용

Link를 사용하려면 Link를 Router 안에 넣어야 한다.
Router 밖에서는 Link를 render 할 수 없기 때문이다.

Outlets

  • react-router-dom한테 말해줘야 함
  • 우리가 Root의 자식을 render하길 원한다고
  • react router는 이 Outlet컴포넌트를 통해서 url을 보게
  • outlet은 내가 render하고자 하는 route를 바꿔서 render하게 해줌
  • 레이아웃 짤때 편함(위 아래에 header, footer 넣고 컨텐츠를 outlet이라고 생각하면 됨)
  • Link to에 경로를 쓸때 앞에 /를 빼고 쓰면 현재 내가 있는 url 다음에 경로를 추가 시키는 것이다. 맨앞에 /가 붙으면 절대경로임

errorElement

  • 다른 컴포넌트들을 또 다른 컴포넌트에서 발생하는 문제로부터 보호해줌
  • 모든 route에 적용 가능

useNavigate

  • 유저를 어딘가로 보내는 기능이 있다.( 유저를 이동시키고 위치를 바꿔줌)
  • 다른 페이지로 이동시키는 방법 (Link 이용 / useNavigate)
  • v5에서는 location.push ~ 을 사용함

useParams

  • route path에 지정한 변수와 현재 URL에서 일치하는 값을 찾아 반환해준다.
  • :userId는 동적 변수이고, useParams를 사용해서 URL에서 해당 userId 값을 가져온다.

//Router.tsx
		{
        path: "users/:userId",
        element: <User />,
      },
      
      // User.tsx
      const { userId } = useParams();
      return (
        <h1>
          User with id {userId} is named: {users[Number(userId) - 1].name}
        </h1>
      );

useOutletContext

  • 레이아웃 컴포넌트 만들때 유용
  • 부모 컴포넌트가 어떤 공통 데이터나 상태를 자식 컴포넌트들에게 공유해주고 싶을때 사용
profile
프론트는 순항중 ¿¿

0개의 댓글