
목차
React는 단일 페이지 애플리케이션 (SPA)를 구축하는데 매우 유용한 라이브러리입니다.
하지만, SPA는 여러 페이지가 있는 것처럼 보이는 사용자 경험을 제공하도록 설계되었기 때문에, 페이지간의 이동이 필요할 때 라우팅이 중요하게 작용합니다.
React에서 가장 널리 사용되는 라우팅 라이브러리는 react router
입니다.
이 라이브러리를 사용하면 사용자의 현재 위치에 따라 다른 컴포넌트를 렌더링하거나 특정 URL에서 특정 컴포넌트를 렌더링하는 등의 기능을 구현할 수 있습니다.
이번 포스트에서는 react-router
를 사용해 React 앱에 라우팅을 설정하는 방법에 대해 알아보겠습니다.
1. React Router 설치
먼저, 프로젝트에 react-router-dom
패키지를 설치해야 합니다.
이 패키지는 웹 어플리케이션을 위한 react-router
의 버전입니다. npm을 사용하면 다음과 같이 설치할 수 있습니다.
npm install react-router-dom
2. React-router-dom 구성 요소 불러오기
라이브러리를 설치한 후에는, react-router-dom
에서 필요한 구성 요소를 가져와야 합니다. 이를 위해 index.js
또는 app.js
파일에서 다음 코드를 작성해야 합니다.
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
3. Router 설정
BrowserRouter
는 HTML5의 history API
를 사용하여 UI를 URL과 동기화하는 라우터입니다. React 컴포넌트를 BrowserRouter
컴포넌트로 감싸면 라우팅이 활성화됩니다.
<Router>
<App />
</Router>
4. 경로 정의
Switch
컴포넌트 내에서 Route
컴포넌트를 사용하여 경로를 정의합니다.
여기서 Switch
컴포넌트는 여러 Route
중 하나를 렌더링하는 역할을 합니다.
URL과 일치하는 첫 번째 Route
또는 Redirect
자식을 렌더링합니다. 이는 여러 경로가 일치하는 경우 첫 번째 경로만 렌더링하도록 보장합니다.
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
<Route component={NotFound} />
</Switch>
5. 컴포넌트 생성
각 경로에 대해 표시할 컴포넌트를 정의해야 합니다. Home.js
, About.js
, Contact.js
, NotFound.js
등의 컴포넌트를 생성하면 됩니다.
추가적인 개념: 파라미터와 쿼리
react router
에서는 URL의 일부를 변수로 사용할 수 있습니다. 이를 통해 동적 라우팅을 구현할 수 있습니다. 예를 들어, /users/:id
경로를 정의하면, /users/1
, /users/2
등 다양한 URL에서 동일한 컴포넌트를 렌더링하고, :id
부분은 파라미터로서 접근할 수 있습니다.
URL에 정보를 담는 또 다른 방법은 쿼리 파라미터를 사용하는 것입니다. 쿼리는 ?
다음에 나오며, &
로 여러 개의 쿼리를 연결할 수 있습니다. 예를 들어, /search?query=react
와 같이 사용됩니다.
결론
react-router
는 React 웹 애플리케이션에서 라우팅을 관리하기 위한 라이브러리입니다.
이를 사용하면 사용자의 현재 위치에 따라 다른 컴포넌트를 렌더링하고, 특정 URL에서 특정 컴포넌트를 렌더링하는 등의 작업을 할 수 있습니다.
본 포스트에서는 react-router
의 기본적인 사용법을 소개하고, 설치부터 라우팅 설정까지의 과정을 설명했습니다. 이를 통해 React에서의 라우팅 설정에 대한 이해를 돕고자 했습니다. 이상입니다.