자바스크립트도 병행하면서 리액트를 이제 막 공부하기 시작했는데..
해커톤이 얼마 남지 않았다 (발등에 불 떨어짐🔥)
그래서 연습용으로 만들던 쇼핑몰 외에, 구상했던 다른 아이디어로 리액트 프로젝트를 만들어보기로 했다
그런데 라우터.. 전에 대충 다뤄보긴 했지만 너무 생소하고 기억이 잘 나지 않았다
그래서 이번에 열심히 연습해보면서 정리한 내용을 잊지 않기 위해 기록해본다
라우터 만들기는 이 게시물 참고해서 진행했다. 설명이 잘 되어있음!
App.js
- import 부분 추가 (BrowserRouter 로 감싸주지 않으면 에러가 생긴다 -> 에러 해결시 참고한 블로그 )
- 아래 내용이 한 세트이다
import Home from "./pages/Home";
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
</Routes>
</Router>
);
}
- 다른 페이지도 추가하고 나면 App.js는 이런 모양이 된다
import "./App.css";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
import Home from "./pages/Home";
import Quiz from "./pages/Quiz";
import Album from "./pages/Album";
import React from "react";
function App() {
return (
<>
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/quiz" element={<Quiz />} />
<Route path="/album" element={<Album />} />
</Routes>
</Router>
</>
);
}
export default App;
Home, Quiz, Album.js 페이지를 아래와 같은 형식으로 작성해준다
- 형식 전부 유사하게 작성하면 된다
const Quiz = () => {
return (
<div>
<h1>소개</h1>
</div>
);
};
export default Quiz;
- Home.js 는 조금 형태가 다르다
- 첫 번째 버튼을 누르면 Quiz 페이지로, 두 번째 버튼을 누르면 Album 페이지로 이동시키려고 한다
- onClick 후에 함수를 다 작성하면 코드가 길어질뿐더러, 유사한 내용을 두 번 반복해서 써야 하므로 상단에 navigateToXXPage 함수를 따로 작성해준다
- 페이지를 이동하려면 navigate("/이동할페이지") 를 사용한다
import { useNavigate } from "react-router-dom";
const Home = () => {
const navigate = useNavigate();
const navigateToQuizPage = () => {
navigate("/quiz");
};
const navigateToAlbumPage = () => {
navigate("/album");
};
return (
<div className="Home">
<div className="title">
<h4>신비한</h4>
<h4>제주 동물사전</h4>
</div>
<div className="center-block">
<button className="btn btn-success" onClick={navigateToQuizPage}>
퀴즈 풀기
</button>
<button className="btn btn-success" onClick={navigateToAlbumPage}>
도감 확인
</button>
</div>
</div>
);
};
export default Home;
본격적인 구현 이전에 reset css를 적용하려고 한다
이전에는 항상 reset.css 파일을 만들고 파일 내용을 복붙하고는 했다
그런데 찾아보니 Reset css를 설치해서 사용할 수 있다길래 바로 써먹어봤다
Reset css 설치
// yarn 으로 설치하기
$ yarn add styled-reset
// npm 으로 설치하기
$ npm i styled-reset
App.js에서 사용하기
- React.Fragment 부분이 reset한 것이다
- 라우터와 함께 작성해야 하므로 <></> 로 감싸주었다
import { Reset } from "styled-reset";
function App() {
return (
<>
<React.Fragment>
<Reset />
</React.Fragment>
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/quiz" element={<Quiz />} />
<Route path="/album" element={<Album />} />
</Routes>
</Router>
</>
);
}
'Web > React' 카테고리의 다른 글
[React] 음성 녹음 구현하고 mp3로 서버에 보내기 (feat. axios, mic-recorder-to-mp3) (1) | 2023.06.07 |
---|---|
Vercel 로 React 프로젝트 배포하기 (0) | 2022.10.27 |
[React] 리액트 설치와 세팅법 (2) | 2022.09.20 |