2024. 7. 17. 03:50ㆍWeb/멋쟁이사자처럼
2024 / 07 / 16
내가 맡은 부분은 로그인 및 회원가입 페이지와 내 정보를 볼 수 있는 마이페이지이다.
그리고 나름 프론트 팀장(?)으로서 페이지 간 연결을 하는 역할도 맡게 되었다.
첫 번째로 사용했던 방법은 이 블로그를 참고했다.
React - 버튼클릭으로 원하는 컴포넌트 렌더링하기
버튼클릭으로 원하는 컴포넌트 렌더링하는 방법
velog.io
그러나 이 방법은 임시로 사용했던 방법이라 잠깐 쓰다가 Router로 페이지 전환하는 방식을 택했다.
개인 포트폴리오 페이지 만들 때 간단하게 쓰기 좋은 방법인듯
Router
npm install react-router-dom
해당 명령어를 통해 설치 가능하다.
설치 후에는 index.js파일로 가서 App을 BrowserRouter로 감싸준다.
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
그리고 필요한 부분에 다음과 같이 import 해서 사용하면 된다.
import { Routes, Router, useNavigate } from "react-router-dom"; //중괄호 안에 사용하고싶은 것들 불러오면 됨.
활용하기
1. 불러올 컴포넌트(페이지) 만들기
//Signin.js
import React from 'react';
const Signin = () => {
return (
<div>
<h1>Signin Page</h1>
</div>
);
};
export default Signin;
2. App.js 파일에 경로 설정하기
//App.js
import "./App.css";
import Navbar from "./components/Navbar.js"; //Navbar에 로그인 버튼을 넣어두었으므로 불러와야 함
import { Routes, Route } from "react-router-dom";
import Signin from "./pages/SigninPage.js"; //컴포넌트 불러오기
//Routes로 Route들을 감싸줌
function App() {
return (
<div>
<Navbar></Navbar>
<Routes>
<Route path="/login" element={<LoginPage></LoginPage>}></Route>
</Routes>
</div>
);
}
3. useNavigate() 함수를 적절한 곳에 작성
//Navbar.js
import { useNavigate } from "react-router-dom";
import logoImage from "../img/logo.png";
const Navbar = () => {
const navigate = useNavigate();
const goToLogin = () => {
navigate("/login");
};
return (
<div>
<LoginButton onClick={goToLogin}>로그인</LoginButton>
</div>
);
}
export default Navbar;
4. 결과

요로코롬 잘 이동되는 것을 확인할 수 있다.
시간 관계상 많은 코드를 생략하였다.
참고로 비밀번호 input 부분에 있는 눈 모양은 장식이 아니고 실제로 작동하는 기능이다. 이건 로그인 페이지 구현이 완료되면 따로 작성해보려고 한다. 본 포스팅은 라우터에 집중하고 싶기 때문에..
다음의 벨로그를 참고했더니 금방 적용할 수 있었다. 역시 코딩은 구글링 싸움인듯.
[React] Router을 이용한 페이지 이동
Router와 useNavigate를 이용하여 페이지 이동을 해보자
velog.io
할 일
07/17 23:00까지 회원가입, 마이페이지 UI 적용하기
오늘의 소감
내일 출근이 걱정되지만 난 해낼 것이다.
늘 그랫듯이..!
'Web > 멋쟁이사자처럼' 카테고리의 다른 글
| [2024 중앙 해커톤] Footer 만들기 (0) | 2024.07.23 |
|---|---|
| [2024 중앙 해커톤] 회원가입, 마이페이지 UI 만들기 (컴포넌트화, props, 사진 업로드 기능) (0) | 2024.07.17 |
| [2024 중앙 해커톤] 디자인 추가 회의 + 컨벤션 (feat. remote 세팅) (1) | 2024.07.12 |
| [2024 중앙 해커톤] 디자인 회의 (0) | 2024.07.11 |
| [2024 중앙 해커톤] 아이디어 회의 (0) | 2024.07.09 |