반응형
올만에 리액트 하려는데 라우터가 버전이 변경돼있었다.
사용법이 조금 달라진듯 하다
1. React Router 설치
npm install react-router-dom@6 history@5
2. URL 연결
src/index.js 파일에 코드를 추가해주자.
import React from "react";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { render } from "react-dom"; // 추가된 부분
import { BrowserRouter, Routes, Route } from "react-router-dom"; // 추가된 부분
// 앱에서 변경된 사항은 없지만, URL을 조작할 준비
// 추가된 부분
const rootElement = document.getElementById("root");
render(
<BrowserRouter>
<App/>
</BrowserRouter>,
rootElement
);
reportWebVitals();
3. App.js
import React from "react";
import { Link } from "react-router-dom";
export default function App() {
return (
<div>
<h1>Bookkeeper</h1>
<nav
style={{
borderBottom: "solid 1px",
paddingBottom: "1rem"
}}
>
<Link to="/singin">singin</Link> |{" "}
<Link to="/singup">singup</Link>
</nav>
</div>
);
}
4. Link 페이지 생성
나는 Signup과 SignIn 페이지를 간단하게 작성했다.
// 파일 위치 : src/containers/signup/index.js
//Singup Page
import React from "react";
function Signup() {
return (
<main style={{ padding: "1rem 0" }}>
<h2>SIGNUP</h2>
</main>
);
}
export default Signup;
// 파일 위치 : src/containers/signin/index.js
//Singin Page
import React from "react";
function SignIn() {
return (
<main style={{ padding: "1rem 0" }}>
<h2>SIGNIN</h2>
</main>
);
}
export default SignIn;
5. 경로 추가
src/index.js 파일에 경로를 추가해주자. 나는 Singup과 Signin이다.
import React from "react";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { render } from "react-dom";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Signin from "./containers/signin";
import Signup from "./containers/signup";
const rootElement = document.getElementById("root");
render(
<BrowserRouter>
<Routes>
<Route path="/" element={<App />}/>
<Route path="signin" element={<Signin />} />
<Route path="signup" element={<Signup />} />
</Routes>
</BrowserRouter>,
rootElement
);
reportWebVitals();
잘 작동하는 것을 볼 수 있다.
6. 깨달음
<Routes>
<Route path="/" element={<App />}/>
<Route path="signin" element={<Signin />} />
<Route path="signup" element={<Signup />} />
</Routes>
이렇게 하면 페이지가 다 바뀌는 것을 볼 수 있다.
요새 유행하는 SPA는 (예를 들어) 내비게이션바는 그대로 있고 바디만 바뀌는 것을 어렵지 않게 볼 수 있다.
그렇게 하고 싶다면
<Routes>
<Route path="/" element={<App />}>
<Route path="signin" element={<Signin />} />
<Route path="signup" element={<Signup />} />
</Route>
</Routes>
요렇게 고치면 된다!
반응형
'React' 카테고리의 다른 글
[React] 로그인 시 사용자 정보 storage(저장소)에 넣기 (localstorage VS sessionstrorage) (0) | 2022.01.07 |
---|---|
[React] 절대경로 설정하기 (0) | 2022.01.06 |
[React] React -Socket을 이용한 채팅기능 (3) | 2021.01.04 |
React - mysql연동하기, 연결 (데이터불러오기) (0) | 2020.10.17 |
React - Mysql 연동하기, 연결(데이터 저장) (0) | 2020.10.17 |