3) 라우팅

1. 라우팅(Routing)

URL 경로에 따라 알맞은 Component를 보여주는 과정을 라우팅이라고 부릅니다. ex) localhost:5173/home -> Main Component 서비스 localhost:5173/login -> Login Component 서비스

React는 이때 브라우저의 History API를 활용하여 주소값은 바꾸지만 실제 페이지 이동은 하지 않고 , 최초 로딩한 HTML안에서 url에 맞는 컴포넌트만 교체합니다.

2. 사용방법

npm i --save react-router-dom 

3. 주요 컴포넌트

컴포넌트
설명

<BrowserRouter>

전체 라우팅 시스템을 감싸주는 최상위 컴포넌트. 보통 App.js를 감쌈

<Routes>

여러 개의 <Route>를 그룹으로 묶는 컴포넌트

<Route>

특정 URL 경로에 어떤 컴포넌트를 보여줄지 설정

<Link>

<a> 태그처럼 생겼지만 페이지 새로고침 없이 이동시켜주는 컴포넌트

<Navigate>

코드 상에서 리다이렉트할 때 사용

<Outlet>

중첩 라우팅에서 자식 컴포넌트를 렌더링할 위치 지정

  • 라우터적용 예시

4. 주요 hook함수

1) useNavigate

  • 프로그래밍 방식으로 페이지를 이동할 수 있게 해주는 훅(Hook)

  • 로그인 완료 후, 회원가입 후, 삭제 완료 후 등에서 자동 이동할 때 사용한다(리디렉트)

  • window.location을 통한 페이지 이동과 달리 Hitosry 를 조작하여 페이지 이동이 발생한것 처럼 보이게 한다.

2) useParams

  • URL 경로에 정의된 파라미터 값을 추출하는 데 사용하는 Hook

  • 동적 라우팅과 함께 사용된다.

3) useLocation

  • 현재 브라우저 주소창의 전체 URL 정보를 객체로 제공하는 훅

5. 중첩 라우팅

  • 부모-자식 관계로 구성된 UI에 사용합니다.

  • /admin에서는 userssettings모두가 가지는 공톰 컴포넌트(<AdminLayout/> )를 렌더링하고

  • userssettings에서는 고유한 자식 컴포넌트(<UserList/> ,<Settings/> )를 렌더링합니다.

  • 부모 컴포넌트 예시

6. 동적 라우팅

  • :파라미터명 형식으로 다양한 URL을 하나의 컴포넌트로 처리할 수 있게 한다.

  • useParams와 함께 사용하여 동적 파라미터에 할당된 데이터를 추출할 수 있다

Last updated