Routing은 다른 경로(url 주소)에 따라 다른 화면을 보여주는 것을 의미한다.
기존의 웹페이지에서는 html에 a 태그를 통해 링크를 걸고, 화면에서 해당 링크를 클릭했을 때 다른 html 페이지로 이동하는 방식으로 라우팅을 했다. 이건 html페이지가 여러개로 존재하는 MPA(Multi Page Application) 일때 라우팅을 하는 방식이다.
하지만 리액트에서는 html 페이지가 하나인 SPA(Single Page Application) 이기 때문에 위 방식과는 다르게 라우팅을 구현해야 한다.
(리액트는 Framework가 아닌 Library이기 때문에 라우팅 기능이 내장되어있지 않기 때문에 별도의 Library를 설치해서 라우팅을 구현해야 함)
리액트의 라우팅 방법은 아래와 같다.
$ npm install react-router-dom
❶ 라우팅 기능이 필요한 프로젝트에서 터미널을 열고 해당 라이브러리를 설치한다.
❷ 설치 완료 후 package.json에서 react-router-dom이 잘 설치되었는지 확인❗️
❸ index.js 파일에 router 컴포넌트 생성
❹ router.js 파일 생성(index.js 파일과 같은 위치에 생성하기)
❺ router 컴포넌트 구현(아래 예시 참조⬇️)
// Router.js
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Login from './pages/Login/Login';
import Signup from './pages/Signup/Signup';
const Router = () => {
return (
<BrowserRouter>
<Routes>
<Route path='/' element={<Login />} />
<Route path='/signup' element={<Signup />} />
</Routes>
</BrowserRouter>
);
};
export default Router;
⛔️ 이렇게 했는데 연결이 라우팅이 안될 경우, ❸번에서 index.js 파일에 생성한 router 컴포넌트가 아래 예시처럼 작성되었는지 확인 필요
// index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import Router from './Router';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Router />);
Link 컴포넌트
useNavigate hook