티스토리 뷰
반응형
먼저 버전 문제를 살펴 보자. 그 후에 사용법을 적어본다.
router 최신버전은 여기를 눌러서 확인하자.
0. 버전 문제 해결
최근 router가 버전 6으로 업그레이드가 됐다. 따라서 옛날 강의를 보는 사람들은 멘붕에 따졌을 것이라 생각한다. 왜냐하면 아래와 같이 명령어로 설치를 하니, switch가 없다고 뜨는 등의 에러가 떴을 것이다. 이 문제는 버전을 업그레이드 하면서 기존의 방식을 호환이 되지 않게 만들었기 때문이다.
$ npm install router-react-dom
간단한 해결책은 아래와 같다. (버전 6을 5로 변경해 준다.)
// 삭제
$ npm uninstall router-react-dom
// 재설치
$ npm install router-react-dom@5
아니면, package.json 파일의 dependencies 부분의 react-router-dom 부분의 버전을 아래와 같이 변경한 후에 npm i를 통해 재설치 하는 방법도 있다.
// before
"dependencies": {
...
"react-router-dom": "^6.1.6",
...
},
// after
"dependencies": {
...
"react-router-dom": "^5.3.0",
...
},
1. 버전 비교
1.1 router 비교
> 가장 많이 변경된 부분은 아래 <Switch>대신 <Routes>를 사용하는 것과 component={Home}이라 적었던 부분을 element={<Home />} 이라 적는 것일 것이다. 아래의 예시를 참고하자.
5버전의 router 예시
import { BrowserRouter, Link, Route, Switch } from 'react-router-dom';
import Home from './components/home';
import Detail from './components/profile';
function App() {
return (
<BrowserRouter>
<Switch>
{/* <Route path={"/home"} exact component={Home} /> */}
<Route path={"/home"} exact>
<Home />
</Route>
<Route path="/Detail">
<Detail />
</Route>
</Switch>
</BrowserRouter>
);
}
export default App;
6버전의 router 예시
import { BrowserRouter, Link, Route, Routes } from 'react-router-dom';
import Home from './components/home';
import Detail from './components/profile';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/home" exact element={<Home />} />
<Route path="/detail" exact element={<Detail />} />
</Routes>
</BrowserRouter>
);
}
export default App;
1.2 페이지 이동
> 페이지 이동 부분도 사실 좀 간편해 지긴했다.
5버전 history
import { useHistory } from 'react-router-dom'
...
const history = useHistory();
...
history.push('/detail')
...
6버전 navigate
import { useNavigate } from 'react-router-dom'
...
const navigate = useNavigate();
...
navigate('/detail')
...
반응형
'Web > React' 카테고리의 다른 글
[react] 실무 개발 환경/배포 환경 설정(.env) (3) | 2022.02.06 |
---|---|
[React]클래스필드(class field) (0) | 2022.02.03 |
[youtube api] 유튜브 데이터 가져오기 (1) | 2022.01.19 |
[React] 데이터 받아와서 보여주기 (0) | 2022.01.11 |
[React/Nodejs] 카카오 로그인 연결하기 (6) | 2021.12.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nextjs autoFocus
- 클라우데라
- DFS
- read_csv
- error:0308010C:digital envelope routines::unsupported
- TensorFlow
- NextJS
- login
- pandas
- django
- next.config.js
- Queue
- 자료구조
- Python
- mongoDB
- BFS
- react autoFocus
- Vue
- UserCreationForm
- nodejs
- useState
- react
- Express
- JavaScript
- Deque
- useHistory 안됨
- vuejs
- typescript
- 자연어처리
- logout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함