과거 프로젝트를 진행할 때 react-router-dom을 v5를 주로 사용했었다.
하지만 새로운 프로젝트에서 버전을 따로 등록하지 않고 설치 시 v6으로 설치되어 v5와 다른 부분들 때문에 시간을 뺐긴 경험이 있다.
간단하게 경로 설정, PathVarible(경로 변수)를 어떻게 가져오는지 비교해보자.
우선 v5에서다.
// App.js
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import Home from './Home';
import Profile from './Profile';
function App() {
return (
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/profile/:username" component={Profile} />
</Switch>
</Router>
);
}
export default App;
Switch를 사용했지만 v6에선 Switch가 없어 이를 그대로 사용한다면 에러메시지가 화면에 노출될 것이다.
v6에서는 아래와 같이 작성하자.
// App.js
import React from "react";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Home from "./Home";
import Profile from "./Profile";
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/profile/:username" element={<Profile />} />
</Routes>
</Router>
);
}
export default App;
그렇다면 PathVariable는 어떻게 받을까?
이는 v5나 v6나 같으니 신경쓰지 않으면 된다.(함수형 컴포넌트)
// Profile.js
import React from "react";
import { useParams } from "react-router-dom";
function Profile() {
const { username } = useParams();
return (
<div>
<h1>Profile Page</h1>
<p>Username: {username}</p>
</div>
);
}
export default Profile;
끝.
'프로젝트 관련' 카테고리의 다른 글
스프링부트 With Mysql - easyRandom을 통한 bulk Insert 및 Index 적용 (0) | 2023.08.03 |
---|---|
springboot delete시 DB접근, 쿼리 횟수에 대한 고찰(mybatis, jpa) (0) | 2023.06.24 |
sprigboot 프로젝트 진행중 리펙토링 적용 (0) | 2023.04.01 |
Postman API를 통한 API 문서 작성 (0) | 2023.03.12 |
AWS RDS를 통한 관계형 데이터베이스 구축 및 springboot 연동 (0) | 2023.02.22 |