본문 바로가기
웹, 서버

React.js를 사용한 웹 애플리케이션(SPA) 프론트앤드 만들기(2) - 라우팅(Routing)

by 방구석 몽상가 2018. 12. 9.
2018-12-07-SPA-react-app-2

1편 : https://wdprogrammer.tistory.com/16

1편에서 사용할 패키지 설치와 기본적인 폴더 구조를 완성했습니다.

이제 만들어진 구조에 코드를 작성하여 메인 페이지를 만들겠습니다!


3. Page Routing

SPA(Single Page Application)는 다른 페이지로 이동하는 것이 다른 html 문서로 이동하는 것이 아닙니다. 마치 다른 페이지로 이동한 것처럼 보이지만, 사실 한 html 내에서 다른 객체를 그려주는 것에 불과합니다. 이를 라우팅이라 하고 React Router 패키지를 사용하여 구현할 것입니다.

먼저, 표시해줄 기본 페이지를 만들겠습니다.

pages/Home.js

제일 첫 화면에 보여줄 Home 페이지를 생성합니다.

 

pages/Signup.js

마찬가지로 회원가입 페이지를 생성합니다.

Home.js와 다르게 Redux를 사용하여 상태 관리를 하기 때문에 Component를 상속받아 구현하겠습니다.

 

pages/index.js

 이제 페이지를 표시하기 위해 라우팅을 구현합니다.

Root.js

 

App.js

 

index.js

Root.js에서 BrowserRouter를 통해 라우팅 기능을 수행하고 App.js에 정의된 route에 따라 다른 페이지를 보여주게 됩니다.

이제 yarn start를 입력해 실행하면 "This page is Home"이라는 문구가 뜨고, 주소 창에 http://localhost:3000/signup를 입력하면 "This is signup page" 라는 문구가 뜨게 됩니다.

 

4. 메인(로그인) 페이지 만들기

레이아웃을 빠르게 구성하기 위해 Semantic UI React를 사용하겠습니다.

css를 적용하기 위해 패키지를 추가로 설치해주고

index.js

import './index.css' 를 지워주고 아래 코드를 입력합니다.

참고 : https://react.semantic-ui.com/layouts/

 

components/Login/Login.js

위 코드에서 알아야 될 부분들만 설명하겠습니다.

 

로고 넣기

image 폴더 내 사용하고자 하는 로고 이미지를 넣어주고 logo라는 객체로 불러온 다음 Semantic UI React의 Image를 사용하여 이미지를 표시합니다.

 

페이지 이동 링크 설정

React Router의 Link 객체를 이용해서 Sign Up을 누르면 /signup 페이지를 표시하도록 설정했습니다.

 

components/Login/index.js

 

pages/Home.js

이렇게 하면 멋진 로그인 창이 떠있는 것을 보실 수 있습니다. 여기서 좀 더 있어보이기 위해 레이아웃을 수정하겠습니다. 이 과정은 하지 않아도 앞으로 진행하는데 문제가 없습니다.

여기까지 진행했으면 다음과 같은 화면이 나타나고 Sign up을 누르면 회원가입 페이지로 이동될 것입니다.


결과



댓글